You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by de...@apache.org on 2015/06/03 15:49:24 UTC

svn commit: r1683333 - in /uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator: OrchestratorComponent.java WorkMapHelper.java

Author: degenaro
Date: Wed Jun  3 13:49:24 2015
New Revision: 1683333

URL: http://svn.apache.org/r1683333
Log:
UIMA-4404 DUCC Orchestrator (OR) reduce publication size comprising command line & especially classpath

Fix ConcurrentModificationException during OR reconcileJdState

Modified:
    uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/OrchestratorComponent.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/WorkMapHelper.java

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/OrchestratorComponent.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/OrchestratorComponent.java?rev=1683333&r1=1683332&r2=1683333&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/OrchestratorComponent.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/OrchestratorComponent.java Wed Jun  3 13:49:24 2015
@@ -392,7 +392,7 @@ implements Orchestrator {
 			logger.info(methodName, duccId, dsr.getLogReport());
 			stateManager.reconcileState(dsr);
 			String sid = ""+duccId.getFriendly();
-			DuccWorkJob duccWorkJob = (DuccWorkJob) WorkMapHelper.findDuccWork(workMap, sid, this, methodName);
+			DuccWorkJob duccWorkJob = (DuccWorkJob) WorkMapHelper.cloneDuccWork(workMap, sid, this, methodName);
 			duccEvent.setJob(duccWorkJob);
 		}
 		logger.trace(methodName, null, messages.fetch("exit"));

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/WorkMapHelper.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/WorkMapHelper.java?rev=1683333&r1=1683332&r2=1683333&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/WorkMapHelper.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/WorkMapHelper.java Wed Jun  3 13:49:24 2015
@@ -18,6 +18,7 @@
 */
 package org.apache.uima.ducc.orchestrator;
 
+import org.apache.commons.lang.SerializationUtils;
 import org.apache.uima.ducc.common.utils.id.DuccId;
 import org.apache.uima.ducc.orchestrator.utilities.TrackSync;
 import org.apache.uima.ducc.transport.event.common.DuccWorkMap;
@@ -49,6 +50,20 @@ public class WorkMapHelper {
 		ts.ended();
 	}
 	
+	public static IDuccWork cloneDuccWork(DuccWorkMap workMap, String duccId, Object object, String methodName) {
+		IDuccWork dwClone = null;
+		TrackSync ts = TrackSync.await(workMap, object.getClass(), methodName);
+		synchronized(workMap) {
+			ts.using();
+			IDuccWork dw = workMap.findDuccWork(duccId);
+			if(dw != null) {
+				dwClone = (IDuccWork)SerializationUtils.clone(dw);
+			}
+		}
+		ts.ended();
+		return dwClone;
+	}
+	
 	public static IDuccWork findDuccWork(DuccWorkMap workMap, String duccId, Object object, String methodName) {
 		IDuccWork dw = null;
 		TrackSync ts = TrackSync.await(workMap, object.getClass(), methodName);