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/16 20:38:35 UTC

svn commit: r1588022 - /uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/metadata/impl/TypePriorities_impl.java

Author: schor
Date: Wed Apr 16 18:38:35 2014
New Revision: 1588022

URL: http://svn.apache.org/r1588022
Log:
[UIMA-3688] strengthen multi-core reliability

Modified:
    uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/metadata/impl/TypePriorities_impl.java

Modified: uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/metadata/impl/TypePriorities_impl.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/metadata/impl/TypePriorities_impl.java?rev=1588022&r1=1588021&r2=1588022&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/metadata/impl/TypePriorities_impl.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/metadata/impl/TypePriorities_impl.java Wed Apr 16 18:38:35 2014
@@ -50,16 +50,18 @@ public class TypePriorities_impl extends
 
   static final long serialVersionUID = -4773863151055424438L;
   
-  private String mName;
+  private volatile String mName;
 
-  private String mVersion;
+  private volatile String mVersion;
 
-  private String mDescription;
+  private volatile String mDescription;
 
-  private String mVendor;
+  private volatile String mVendor;
 
-  private Import[] mImports = Import.EMPTY_IMPORTS;
+  private volatile Import[] mImports = Import.EMPTY_IMPORTS;
 
+  // not final or volatile because clone() copies a ref to shared value, and we need that value to be a new instance
+  // Threading: all access synchronized except initial creation during cloning
   private List<TypePriorityList> mPriorityLists = new ArrayList<TypePriorityList>();
   
   /**