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) {