if (myExtraExtraOutput) System.out.println (getName () + ".processTasks - task uid map keys " + myTaskUIDtoObject.keySet());
  public void processTasks (List tasks) {	synchronized (static_mutex) {	  System.out.println (getName () + ".processTasks - received " + 						  tasks.size () + " tasks");	  if (runInternal)		internalBuffer.append ("<root>");	  if (myExtraOutput)		for (int i = 0; i < tasks.size (); i++)		  System.out.print ("" + ((Task) tasks.get(i)).getUID () + ", ");	  	  Date start = new Date();      	  if (!sentFormatAlready || sendSpecsEveryTime) {		Collection formatTemplates = getAssetTemplatesForTasks(tasks);		formatTemplates.addAll (getTemplateTasks(tasks));		if (myExtraOutput) {		  System.out.println (getName () + ".processTasks - " + formatTemplates.size() + " unique assets : ");		  for (Iterator iter = formatTemplates.iterator (); iter.hasNext(); )			System.out.print ("\t" + iter.next().getClass ());		  System.out.println ("");		}		Map [] nameInfo = sendFormat (formatTemplates);		myNameToDescrip   = nameInfo[0];		myTypesToNodes    = nameInfo[1];		if (!runInternal)		  sentFormatAlready = true;		if (showTiming)		  domUtil.reportTime (" - Vishnu completed format XML processing in ", start);	  }      	  setUIDToObjectMap (tasks, myTaskUIDtoObject);      	  if (myExtraOutput)		System.out.println (getName () + ".processTasks - sending " + 							myTaskUIDtoObject.values ().size () + " tasks.");	  int numTasks = myTaskUIDtoObject.values ().size ();      	  Date dataStart = new Date();      	  if (!mySentAssetDataAlready) {		Collection allAssets = getAllAssets();		if (myExtraOutput)		  System.out.println (getName () + ".processTasks - sending " + 							  allAssets.size () + " assets.");	  		tasks.addAll (allAssets);	  		if (myExtraExtraOutput) 		  for (Iterator iter = tasks.iterator (); iter.hasNext (); ) {			Object obj = iter.next ();		  			System.out.println (getName () + ".processTasks sending stuff " + 								((UniqueObject) obj).getUID ());		  }	  		setUIDToObjectMap (allAssets, myAssetUIDtoObject);	  		if (!alwaysClearDatabase)		  mySentAssetDataAlready = true;	  }      	  sendDataToVishnu (tasks, myNameToDescrip, myTypesToNodes, 						alwaysClearDatabase, 						false /* send assets as NEWOBJECTS */, null);	  if (showTiming) {		domUtil.reportTime (" - Vishnu completed data XML processing in ", dataStart);		domUtil.reportTime (" - Vishnu completed XML processing in ", start);	  }	  if (runInternal) {		runInternally ();	  } else {		comm.startScheduling ();			if (!waitTillFinished ())		  showTimedOutMessage ();	  }	  if (showTiming)		domUtil.reportTime (" - Vishnu did " + numTasks + " tasks in ", start);	} // end of synchronized  }