You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by sc...@apache.org on 2014/04/14 23:24:17 UTC

svn commit: r1587326 - in /uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/flow: FlowController_ImplBase.java impl/FixedFlowController.java

Author: schor
Date: Mon Apr 14 21:24:17 2014
New Revision: 1587326

URL: http://svn.apache.org/r1587326
Log:
[UIMA-2373] Fix likely underlying cause of this Jira issue.

Modified:
    uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/flow/FlowController_ImplBase.java
    uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/flow/impl/FixedFlowController.java

Modified: uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/flow/FlowController_ImplBase.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/flow/FlowController_ImplBase.java?rev=1587326&r1=1587325&r2=1587326&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/flow/FlowController_ImplBase.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/flow/FlowController_ImplBase.java Mon Apr 14 21:24:17 2014
@@ -40,7 +40,7 @@ import org.apache.uima.resource.Resource
  * provide a more intelligent implementation.
  */
 public abstract class FlowController_ImplBase implements FlowController {
-  private FlowControllerContext mContext;
+  private FlowControllerContext mContext = null;
 
   /*
    * (non-Javadoc)

Modified: uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/flow/impl/FixedFlowController.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/flow/impl/FixedFlowController.java?rev=1587326&r1=1587325&r2=1587326&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/flow/impl/FixedFlowController.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/flow/impl/FixedFlowController.java Mon Apr 14 21:24:17 2014
@@ -72,14 +72,17 @@ public class FixedFlowController extends
 
   private static final int ACTION_DROP_IF_NEW_CAS_PRODUCED = 3;
 
-  private List<String> mSequence;
+  // make final to work better in multi-thread case  UIMA-2373
+  final private List<String> mSequence = new ArrayList<String>();
 
   private int mActionAfterCasMultiplier;
 
-  public void initialize(FlowControllerContext aContext) throws ResourceInitializationException {
+  public synchronized void initialize(FlowControllerContext aContext) throws ResourceInitializationException {
+    if (getContext() == aContext) {
+      return;  // only do initialize once per instance of this and same context
+    }
     super.initialize(aContext);
     FlowConstraints flowConstraints = aContext.getAggregateMetadata().getFlowConstraints();
-    mSequence = new ArrayList<String>();
     if (flowConstraints instanceof FixedFlow) {
       String[] sequence = ((FixedFlow) flowConstraints).getFixedFlow();
       for( String key : sequence ) {