Author: cwiklik
Date: Mon Dec 12 21:36:23 2011
New Revision: 1213446

URL: http://svn.apache.org/viewvc?rev=1213446&view=rev
Log:
UIMA-2308 synchronizes access to super.defineCasPool() using class level locking

Modified:
    
uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/EECasManager_impl.java

Modified: 
uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/EECasManager_impl.java
URL: 
http://svn.apache.org/viewvc/uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/EECasManager_impl.java?rev=1213446&r1=1213445&r2=1213446&view=diff
==============================================================================
--- 
uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/EECasManager_impl.java
 (original)
+++ 
uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/EECasManager_impl.java
 Mon Dec 12 21:36:23 2011
@@ -31,7 +31,6 @@ import org.apache.uima.resource.impl.Cas
 
 public class EECasManager_impl extends CasManager_impl {
   Map casPoolMap = new HashMap();
-
   protected long initialCasHeapSize = 0;
 
   public EECasManager_impl(ResourceManager aResourceManager) {
@@ -59,14 +58,17 @@ public class EECasManager_impl extends C
   @Override
   public void defineCasPool(UimaContextAdmin aRequestorContext, int 
aMinimumSize,
           Properties aPerformanceTuningSettings) throws 
ResourceInitializationException {
-    if (aPerformanceTuningSettings == null) {
-      aPerformanceTuningSettings = new Properties();
-    }
-    if (initialCasHeapSize > 0) {
-      
aPerformanceTuningSettings.setProperty(UIMAFramework.CAS_INITIAL_HEAP_SIZE, 
Integer.valueOf(
-              (int) initialCasHeapSize).toString());
-    }
-    super.defineCasPool(aRequestorContext, aMinimumSize, 
aPerformanceTuningSettings);
+         // synchronize on class level lock for mutual exclusion between 
different instances of the object     
+         synchronized(CasManager_impl.class) {
+                 if (aPerformanceTuningSettings == null) {
+                     aPerformanceTuningSettings = new Properties();
+             }
+                 if (initialCasHeapSize > 0) {
+                     
aPerformanceTuningSettings.setProperty(UIMAFramework.CAS_INITIAL_HEAP_SIZE, 
Integer.valueOf(
+                             (int) initialCasHeapSize).toString());
+                 }
+                 super.defineCasPool(aRequestorContext, aMinimumSize, 
aPerformanceTuningSettings);
+         }
   }
 
   public void setPoolSize(String aRequestorContextName, int aSize) {


Reply via email to