rem: catch(e); 
add: catch(e) 
context: function DropOnFolderTree(event){	debugDump("DropOnTree\n");	var RDF = GetRDFService();	if (!RDF) return(false);	var treeRoot = GetFolderTree();	if (!treeRoot)	return(false);	var treeDatabase = treeRoot.database;	if (!treeDatabase)	return(false);	// target is the <treecell>, and "id" is on the <treeitem> two levels above	var treeItem = event.target.parentNode.parentNode;	if (!treeItem)	return(false);	if (event.ctrlKey)		ctrlKeydown = true;	else		ctrlKeydown = false;	// drop action is always "on" not "before" or "after"	// get drop hint attributes	var dropBefore = treeItem.getAttribute("dd-droplocation");	var dropOn = treeItem.getAttribute("dd-dropon");	var dropAction;	if (dropOn == "true") 		dropAction = "on";	else		return(false);	var targetID = treeItem.getAttribute("id");	if (!targetID)	return(false);	debugDump("***targetID = " + targetID + "\n");	//make sure target is a folder	var isServer = treeItem.getAttribute("IsServer");	if (isServer == "true")	{		debugDump("***isServer == true\n");		return(false);	}	var canFileMessages = treeItem.getAttribute("CanFileMessages");	if (canFileMessages != "true")	{		debugDump("***canFileMessages == false\n");		return(false);	}	var dragService = GetDragService();	if ( !dragService )	return(false);		var dragSession = dragService.getCurrentSession();	if ( !dragSession )	return(false);	var trans = Components.classes["@mozilla.org/widget/transferable;1"].createInstance(Components.interfaces.nsITransferable);	if ( !trans ) return(false);	trans.addDataFlavor("text/nsmessage");	var isNews = false;	var messageList = Components.classes["@mozilla.org/supports-array;1"].createInstance(Components.interfaces.nsISupportsArray);	for ( var i = 0; i < dragSession.numDropItems; ++i )	{		dragSession.getData ( trans, i );		dataObj = new Object();		bestFlavor = new Object();		len = new Object();		trans.getAnyTransferData ( bestFlavor, dataObj, len );		if ( dataObj )	dataObj = dataObj.value.QueryInterface(Components.interfaces.nsISupportsWString);		if ( !dataObj )	continue;		// pull the URL out of the data object		var sourceID = dataObj.data.substring(0, len.value);		if (!sourceID)	continue;		debugDump("    Node #" + i + ": drop '" + sourceID + "' " + dropAction + " '" + targetID + "'");		debugDump("\n");		sourceNode = RDF.GetResource(sourceID, true);		if (!sourceNode)			continue;				// Prevent dropping of a node before, after, or on itself		if (sourceNode == targetNode)	continue;		messageList.AppendElement(sourceNode);	}    if (sourceID.substring(0,6) == "news:/")		isNews = true;	var targetNode = RDF.GetResource(targetID, true);	if (!targetNode)	return(false);  	var targetfolder = targetNode.QueryInterface(Components.interfaces.nsIMsgFolder);	var targetServer = targetfolder.server;	var message = sourceNode.QueryInterface(Components.interfaces.nsIMessage);	var folder = message.msgFolder;	var sourceRescource = folder.QueryInterface(Components.interfaces.nsIRDFResource);  	var sourcefolder = sourceRescource.QueryInterface(Components.interfaces.nsIMsgFolder);	var sourceServer = sourcefolder.server;	if (targetServer == sourceServer)	{        if (isNews)        {            try            {            messenger.CopyMessages(treeDatabase,                                   sourceRescource,                                   targetNode, messageList, false);            }            catch(e);            {            dump ( "Exception : CopyMessages \n");            }        }        else        {			//temperary for single mail window, not working when supporting multiple mail windows			if (!ctrlKeydown)			{				messageTree = GetThreadTree();				var nextMessage = GetNextMessageAfterDelete(messageTree.selectedItems);				if(nextMessage)					gNextMessageAfterDelete = nextMessage.getAttribute('id');				else					gNextMessageAfterDelete = null;			}                        try {			messenger.CopyMessages(treeDatabase,									   sourceRescource,									   targetNode, messageList, !ctrlKeydown);                           }                           catch(e)                           {                              gNextMessageAfterDelete = null;                              dump ( "Exception : CopyMessages \n");                           }        }	}	else	{		if (!ctrlKeydown)		{			messageTree = GetThreadTree();			var nextMessage = GetNextMessageAfterDelete(messageTree.selectedItems);			if(nextMessage)				gNextMessageAfterDelete = nextMessage.getAttribute('id');			else				gNextMessageAfterDelete = null;		}                try {		messenger.CopyMessages(treeDatabase,							   sourceRescource,							   targetNode, messageList, !ctrlKeydown);                }                 catch(e)                 {                    gNextMessageAfterDelete = null;                   dump ( "Exception : CopyMessages \n");                 }	}	return(false);}function DropOnThreadTree(event){	debugDump("DropOnThreadTree\n");    if (event.target.localName != "treecell" &&        event.target.localName != "treeitem")        return false;    	return false;}
meta: 10234	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/10234/b41b19f5a2403d667e38997d72376984ce55f8ba/messengerdnd.js/buggy/mailnews/base/resources/content/messengerdnd.js