[jboss-cvs] JBossAS SVN: r70740 - in projects/aop/trunk/aop/src/main/org/jboss/aop: annotation and 1 other directory.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Mar 11 11:10:47 EDT 2008
Author: kabir.khan at jboss.com
Date: 2008-03-11 11:10:47 -0400 (Tue, 11 Mar 2008)
New Revision: 70740
Modified:
projects/aop/trunk/aop/src/main/org/jboss/aop/Advisor.java
projects/aop/trunk/aop/src/main/org/jboss/aop/AspectManager.java
projects/aop/trunk/aop/src/main/org/jboss/aop/ClassAdvisor.java
projects/aop/trunk/aop/src/main/org/jboss/aop/GeneratedClassAdvisor.java
projects/aop/trunk/aop/src/main/org/jboss/aop/annotation/AnnotationRepository.java
Log:
[JBAOP-541] Don't use ReadWrite locks when initialising the lazy collections
Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/Advisor.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/Advisor.java 2008-03-11 15:10:16 UTC (rev 70739)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/Advisor.java 2008-03-11 15:10:47 UTC (rev 70740)
@@ -37,10 +37,8 @@
import java.util.List;
import java.util.Map;
import java.util.Set;
-import java.util.WeakHashMap;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.CopyOnWriteArraySet;
-import java.util.concurrent.locks.ReentrantReadWriteLock;
import javassist.CtClass;
import javassist.CtConstructor;
@@ -125,7 +123,7 @@
}
/** Read/Write lock to be used when lazy creating the collections */
- protected ReentrantReadWriteLock lock = new ReentrantReadWriteLock();
+ protected Object lazyCollectionLock = new Object();
protected Set<AdviceBinding> adviceBindings = new HashSet<AdviceBinding>();
protected volatile ArrayList<InterfaceIntroduction> interfaceIntroductions = UnmodifiableEmptyCollections.EMPTY_ARRAYLIST;
@@ -1319,38 +1317,17 @@
}
}
- /**
- * Lock for write
- */
- protected void lockWrite()
- {
- lock.writeLock().lock();
- }
-
- /**
- * Unlock for write
- */
- protected void unlockWrite()
- {
- lock.writeLock().unlock();
- }
-
protected void initInterfaceIntroductionsList()
{
if (interfaceIntroductions == UnmodifiableEmptyCollections.EMPTY_ARRAYLIST)
{
- lockWrite();
- try
+ synchronized(lazyCollectionLock)
{
if (interfaceIntroductions == UnmodifiableEmptyCollections.EMPTY_ARRAYLIST)
{
interfaceIntroductions = new ArrayList<InterfaceIntroduction>();
}
}
- finally
- {
- unlockWrite();
- }
}
}
@@ -1358,18 +1335,13 @@
{
if (classMetaDataBindings == UnmodifiableEmptyCollections.EMPTY_ARRAYLIST)
{
- lockWrite();
- try
+ synchronized(lazyCollectionLock)
{
if (classMetaDataBindings == UnmodifiableEmptyCollections.EMPTY_ARRAYLIST)
{
classMetaDataBindings = new ArrayList();
}
}
- finally
- {
- unlockWrite();
- }
}
}
@@ -1377,18 +1349,13 @@
{
if (perInstanceAspectDefinitions == UnmodifiableEmptyCollections.EMPTY_COPYONWRITE_ARRAYSET)
{
- lockWrite();
- try
+ synchronized(lazyCollectionLock)
{
if (perInstanceAspectDefinitions == UnmodifiableEmptyCollections.EMPTY_COPYONWRITE_ARRAYSET)
{
perInstanceAspectDefinitions = new CopyOnWriteArraySet();
}
}
- finally
- {
- unlockWrite();
- }
}
}
@@ -1396,18 +1363,13 @@
{
if (perInstanceJoinpointAspectDefinitions == UnmodifiableEmptyCollections.EMPTY_CONCURRENT_HASHMAP)
{
- lockWrite();
- try
+ synchronized(lazyCollectionLock)
{
if (perInstanceJoinpointAspectDefinitions == UnmodifiableEmptyCollections.EMPTY_CONCURRENT_HASHMAP)
{
perInstanceJoinpointAspectDefinitions = new ConcurrentHashMap();
}
}
- finally
- {
- unlockWrite();
- }
}
}
@@ -1415,18 +1377,13 @@
{
if (advisedMethods == UnmodifiableEmptyCollections.EMPTY_TLONG_OBJECT_HASHMAP)
{
- lockWrite();
- try
+ synchronized(lazyCollectionLock)
{
if (advisedMethods == UnmodifiableEmptyCollections.EMPTY_TLONG_OBJECT_HASHMAP)
{
advisedMethods = new TLongObjectHashMap();
}
}
- finally
- {
- unlockWrite();
- }
}
}
}
\ No newline at end of file
Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/AspectManager.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/AspectManager.java 2008-03-11 15:10:16 UTC (rev 70739)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/AspectManager.java 2008-03-11 15:10:47 UTC (rev 70740)
@@ -108,8 +108,8 @@
{
private static final Logger logger = AOPLogger.getLogger(AspectManager.class);
- /** Read/Write lock to be used when lazy creating the collections */
- ReentrantReadWriteLock lock = new ReentrantReadWriteLock();
+ /** Lock to be used when lazy creating the collections */
+ Object lazyCollectionLock = new Object();
/** Advisors registered with this manager/domain */
protected final WeakHashMap advisors = new WeakHashMap();
@@ -2193,38 +2193,17 @@
// for (int i = 0 ; i < indent ; i++) System.out.print(" ");
// }
- /**
- * Lock for write
- */
- protected void lockWrite()
- {
- lock.writeLock().lock();
- }
-
- /**
- * Unlock for write
- */
- protected void unlockWrite()
- {
- lock.writeLock().unlock();
- }
-
protected void initSubDomainsByNameMap()
{
if (subDomainsByName == UnmodifiableEmptyCollections.EMPTY_WEAK_VALUE_HASHMAP)
{
- lockWrite();
- try
+ synchronized(lazyCollectionLock)
{
if (subDomainsByName == UnmodifiableEmptyCollections.EMPTY_WEAK_VALUE_HASHMAP)
{
subDomainsByName = new WeakValueHashMap();
}
}
- finally
- {
- unlockWrite();
- }
}
}
@@ -2232,18 +2211,13 @@
{
if (subscribedSubDomains == UnmodifiableEmptyCollections.EMPTY_WEAK_HASHMAP)
{
- lockWrite();
- try
+ synchronized(lazyCollectionLock)
{
if (subscribedSubDomains == UnmodifiableEmptyCollections.EMPTY_WEAK_HASHMAP)
{
subscribedSubDomains = new WeakHashMap();
}
}
- finally
- {
- unlockWrite();
- }
}
}
@@ -2251,18 +2225,13 @@
{
if (subscribedSubDomainsQueue == UnmodifiableEmptyCollections.EMPTY_WEAK_HASHMAP)
{
- lockWrite();
- try
+ synchronized(lazyCollectionLock)
{
if (subscribedSubDomainsQueue == UnmodifiableEmptyCollections.EMPTY_WEAK_HASHMAP)
{
subscribedSubDomainsQueue = new WeakHashMap();
}
}
- finally
- {
- unlockWrite();
- }
}
}
@@ -2270,18 +2239,13 @@
{
if (interfaceIntroductions == UnmodifiableEmptyCollections.EMPTY_LINKED_HASHMAP)
{
- lockWrite();
- try
+ synchronized(lazyCollectionLock)
{
if (interfaceIntroductions == UnmodifiableEmptyCollections.EMPTY_LINKED_HASHMAP)
{
interfaceIntroductions = new LinkedHashMap();
}
}
- finally
- {
- unlockWrite();
- }
}
}
@@ -2289,18 +2253,13 @@
{
if (arrayReplacements == UnmodifiableEmptyCollections.EMPTY_LINKED_HASHMAP)
{
- lockWrite();
- try
+ synchronized(lazyCollectionLock)
{
if (arrayReplacements == UnmodifiableEmptyCollections.EMPTY_LINKED_HASHMAP)
{
arrayReplacements = new LinkedHashMap();
}
}
- finally
- {
- unlockWrite();
- }
}
}
@@ -2308,18 +2267,13 @@
{
if (arrayBindings == UnmodifiableEmptyCollections.EMPTY_LINKED_HASHMAP)
{
- lockWrite();
- try
+ synchronized(lazyCollectionLock)
{
if (arrayBindings == UnmodifiableEmptyCollections.EMPTY_LINKED_HASHMAP)
{
arrayBindings = new LinkedHashMap();
}
}
- finally
- {
- unlockWrite();
- }
}
}
@@ -2328,18 +2282,13 @@
{
if (annotationIntroductions == UnmodifiableEmptyCollections.EMPTY_LINKED_HASHMAP)
{
- lockWrite();
- try
+ synchronized(lazyCollectionLock)
{
if (annotationIntroductions == UnmodifiableEmptyCollections.EMPTY_LINKED_HASHMAP)
{
annotationIntroductions = new LinkedHashMap();
}
}
- finally
- {
- unlockWrite();
- }
}
}
@@ -2347,18 +2296,13 @@
{
if (annotationOverrides == UnmodifiableEmptyCollections.EMPTY_LINKED_HASHMAP)
{
- lockWrite();
- try
+ synchronized(lazyCollectionLock)
{
if (annotationOverrides == UnmodifiableEmptyCollections.EMPTY_LINKED_HASHMAP)
{
annotationOverrides = new LinkedHashMap();
}
}
- finally
- {
- unlockWrite();
- }
}
}
@@ -2366,18 +2310,13 @@
{
if (bindings == UnmodifiableEmptyCollections.EMPTY_LINKED_HASHMAP)
{
- lockWrite();
- try
+ synchronized(lazyCollectionLock)
{
if (bindings == UnmodifiableEmptyCollections.EMPTY_LINKED_HASHMAP)
{
bindings = new LinkedHashMap();
}
}
- finally
- {
- unlockWrite();
- }
}
}
@@ -2385,18 +2324,13 @@
{
if (typedefs == UnmodifiableEmptyCollections.EMPTY_LINKED_HASHMAP)
{
- lockWrite();
- try
+ synchronized(lazyCollectionLock)
{
if (typedefs == UnmodifiableEmptyCollections.EMPTY_LINKED_HASHMAP)
{
typedefs = new LinkedHashMap();
}
}
- finally
- {
- unlockWrite();
- }
}
}
@@ -2404,18 +2338,13 @@
{
if (interceptorFactories == UnmodifiableEmptyCollections.EMPTY_HASHMAP)
{
- lockWrite();
- try
+ synchronized(lazyCollectionLock)
{
if (interceptorFactories == UnmodifiableEmptyCollections.EMPTY_HASHMAP)
{
interceptorFactories = new HashMap();
}
}
- finally
- {
- unlockWrite();
- }
}
}
@@ -2423,18 +2352,13 @@
{
if (classMetaDataLoaders == UnmodifiableEmptyCollections.EMPTY_HASHMAP)
{
- lockWrite();
- try
+ synchronized(lazyCollectionLock)
{
if (classMetaDataLoaders == UnmodifiableEmptyCollections.EMPTY_HASHMAP)
{
classMetaDataLoaders = new HashMap();
}
}
- finally
- {
- unlockWrite();
- }
}
}
@@ -2442,18 +2366,13 @@
{
if (interceptorStacks == UnmodifiableEmptyCollections.EMPTY_HASHMAP)
{
- lockWrite();
- try
+ synchronized(lazyCollectionLock)
{
if (interceptorStacks == UnmodifiableEmptyCollections.EMPTY_HASHMAP)
{
interceptorStacks = new HashMap();
}
}
- finally
- {
- unlockWrite();
- }
}
}
@@ -2462,18 +2381,13 @@
{
if (declares == UnmodifiableEmptyCollections.EMPTY_HASHMAP)
{
- lockWrite();
- try
+ synchronized(lazyCollectionLock)
{
if (declares == UnmodifiableEmptyCollections.EMPTY_HASHMAP)
{
declares = new HashMap();
}
}
- finally
- {
- unlockWrite();
- }
}
}
@@ -2481,18 +2395,13 @@
{
if (cflowStacks == UnmodifiableEmptyCollections.EMPTY_CONCURRENT_HASHMAP)
{
- lockWrite();
- try
+ synchronized(lazyCollectionLock)
{
if (cflowStacks == UnmodifiableEmptyCollections.EMPTY_CONCURRENT_HASHMAP)
{
cflowStacks = new ConcurrentHashMap();
}
}
- finally
- {
- unlockWrite();
- }
}
}
@@ -2500,18 +2409,13 @@
{
if (dynamicCFlows == UnmodifiableEmptyCollections.EMPTY_CONCURRENT_HASHMAP)
{
- lockWrite();
- try
+ synchronized(lazyCollectionLock)
{
if (dynamicCFlows == UnmodifiableEmptyCollections.EMPTY_CONCURRENT_HASHMAP)
{
dynamicCFlows = new ConcurrentHashMap();
}
}
- finally
- {
- unlockWrite();
- }
}
}
@@ -2519,18 +2423,13 @@
{
if (aspectDefinitions == UnmodifiableEmptyCollections.EMPTY_CONCURRENT_HASHMAP)
{
- lockWrite();
- try
+ synchronized(lazyCollectionLock)
{
if (aspectDefinitions == UnmodifiableEmptyCollections.EMPTY_CONCURRENT_HASHMAP)
{
aspectDefinitions = new ConcurrentHashMap();
}
}
- finally
- {
- unlockWrite();
- }
}
}
@@ -2538,18 +2437,13 @@
{
if (perVMAspects == UnmodifiableEmptyCollections.EMPTY_CONCURRENT_HASHMAP)
{
- lockWrite();
- try
+ synchronized(lazyCollectionLock)
{
if (perVMAspects == UnmodifiableEmptyCollections.EMPTY_CONCURRENT_HASHMAP)
{
perVMAspects = new ConcurrentHashMap();
}
}
- finally
- {
- unlockWrite();
- }
}
}
@@ -2557,18 +2451,13 @@
{
if (pointcuts == UnmodifiableEmptyCollections.EMPTY_LINKED_HASHMAP)
{
- lockWrite();
- try
+ synchronized(lazyCollectionLock)
{
if (pointcuts == UnmodifiableEmptyCollections.EMPTY_LINKED_HASHMAP)
{
pointcuts = new LinkedHashMap();
}
}
- finally
- {
- unlockWrite();
- }
}
}
@@ -2576,18 +2465,13 @@
{
if (pointcutInfos == UnmodifiableEmptyCollections.EMPTY_LINKED_HASHMAP)
{
- lockWrite();
- try
+ synchronized(lazyCollectionLock)
{
if (pointcutInfos == UnmodifiableEmptyCollections.EMPTY_LINKED_HASHMAP)
{
pointcutInfos = new LinkedHashMap();
}
}
- finally
- {
- unlockWrite();
- }
}
}
@@ -2596,36 +2480,26 @@
{
if (classMetaData == UnmodifiableEmptyCollections.EMPTY_LINKED_HASHMAP)
{
- lockWrite();
- try
+ synchronized(lazyCollectionLock)
{
if (classMetaData == UnmodifiableEmptyCollections.EMPTY_LINKED_HASHMAP)
{
classMetaData = new LinkedHashMap();
}
}
- finally
- {
- unlockWrite();
- }
}
}
protected void initContainersMap()
{
if (containers == UnmodifiableEmptyCollections.EMPTY_HASHMAP)
{
- lockWrite();
- try
+ synchronized(lazyCollectionLock)
{
if (containers == UnmodifiableEmptyCollections.EMPTY_HASHMAP)
{
containers = new HashMap();
}
}
- finally
- {
- unlockWrite();
- }
}
}
@@ -2633,18 +2507,13 @@
{
if (precedenceDefs == UnmodifiableEmptyCollections.EMPTY_LINKED_HASHMAP)
{
- lockWrite();
- try
+ synchronized(lazyCollectionLock)
{
if (precedenceDefs == UnmodifiableEmptyCollections.EMPTY_LINKED_HASHMAP)
{
precedenceDefs = new LinkedHashMap();
}
}
- finally
- {
- unlockWrite();
- }
}
}
Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/ClassAdvisor.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/ClassAdvisor.java 2008-03-11 15:10:16 UTC (rev 70739)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/ClassAdvisor.java 2008-03-11 15:10:47 UTC (rev 70740)
@@ -1808,18 +1808,13 @@
{
if (methodByMethodData == null)
{
- lockWrite();
- try
+ synchronized(lazyCollectionLock)
{
if (methodByMethodData == null)
{
methodByMethodData = new MethodByMethodData();
}
}
- finally
- {
- unlockWrite();
- }
}
return methodByMethodData;
}
@@ -1828,18 +1823,13 @@
{
if (conByMethodData == null)
{
- lockWrite();
- try
+ synchronized(lazyCollectionLock)
{
if (conByMethodData == null)
{
conByMethodData = new ConByMethodData();
}
}
- finally
- {
- unlockWrite();
- }
}
return conByMethodData;
}
@@ -2102,8 +2092,7 @@
backrefMethodCalledByMethodBindings == UnmodifiableEmptyCollections.EMPTY_HASHMAP ||
methodCalledByMethodInterceptors == UnmodifiableEmptyCollections.EMPTY_TLONG_OBJECT_HASHMAP)
{
- lockWrite();
- try
+ synchronized(lazyCollectionLock)
{
if (methodCalledByMethodBindings == UnmodifiableEmptyCollections.EMPTY_TLONG_OBJECT_HASHMAP)
{
@@ -2118,10 +2107,6 @@
methodCalledByMethodInterceptors = new TLongObjectHashMap();
}
}
- finally
- {
- unlockWrite();
- }
}
if (System.getSecurityManager() == null)
@@ -2345,8 +2330,7 @@
backrefConCalledByMethodBindings == UnmodifiableEmptyCollections.EMPTY_HASHMAP ||
conCalledByMethodInterceptors == UnmodifiableEmptyCollections.EMPTY_TLONG_OBJECT_HASHMAP)
{
- lockWrite();
- try
+ synchronized(lazyCollectionLock)
{
if (conCalledByMethodBindings == UnmodifiableEmptyCollections.EMPTY_TLONG_OBJECT_HASHMAP)
{
@@ -2361,10 +2345,6 @@
conCalledByMethodInterceptors = new TLongObjectHashMap();
}
}
- finally
- {
- unlockWrite();
- }
}
if (System.getSecurityManager() == null)
Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/GeneratedClassAdvisor.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/GeneratedClassAdvisor.java 2008-03-11 15:10:16 UTC (rev 70739)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/GeneratedClassAdvisor.java 2008-03-11 15:10:47 UTC (rev 70740)
@@ -1100,18 +1100,13 @@
{
if (joinPointGenerators == UnmodifiableEmptyCollections.EMPTY_CONCURRENT_HASHMAP)
{
- lockWrite();
- try
+ synchronized(lazyCollectionLock)
{
if (joinPointGenerators == UnmodifiableEmptyCollections.EMPTY_CONCURRENT_HASHMAP)
{
joinPointGenerators = new ConcurrentHashMap();
}
}
- finally
- {
- unlockWrite();
- }
}
}
@@ -1119,18 +1114,13 @@
{
if (fieldReadJoinPoinGenerators == UnmodifiableEmptyCollections.EMPTY_CONCURRENT_HASHMAP)
{
- lockWrite();
- try
+ synchronized(lazyCollectionLock)
{
if (fieldReadJoinPoinGenerators == UnmodifiableEmptyCollections.EMPTY_CONCURRENT_HASHMAP)
{
fieldReadJoinPoinGenerators = new ConcurrentHashMap();
}
}
- finally
- {
- unlockWrite();
- }
}
}
@@ -1138,18 +1128,13 @@
{
if (constructionJoinPointGenerators == UnmodifiableEmptyCollections.EMPTY_CONCURRENT_HASHMAP)
{
- lockWrite();
- try
+ synchronized(lazyCollectionLock)
{
if (constructionJoinPointGenerators == UnmodifiableEmptyCollections.EMPTY_CONCURRENT_HASHMAP)
{
constructionJoinPointGenerators = new ConcurrentHashMap();
}
}
- finally
- {
- unlockWrite();
- }
}
}
@@ -1157,18 +1142,13 @@
{
if (oldInfos == UnmodifiableEmptyCollections.EMPTY_CONCURRENT_HASHMAP)
{
- lockWrite();
- try
+ synchronized(lazyCollectionLock)
{
if (oldInfos == UnmodifiableEmptyCollections.EMPTY_CONCURRENT_HASHMAP)
{
oldInfos = new ConcurrentHashMap<Joinpoint, Interceptor[]>();
}
}
- finally
- {
- unlockWrite();
- }
}
return oldInfos;
}
@@ -1177,18 +1157,13 @@
{
if (oldFieldReadInfos == UnmodifiableEmptyCollections.EMPTY_CONCURRENT_HASHMAP)
{
- lockWrite();
- try
+ synchronized(lazyCollectionLock)
{
if (oldFieldReadInfos == UnmodifiableEmptyCollections.EMPTY_CONCURRENT_HASHMAP)
{
oldFieldReadInfos = new ConcurrentHashMap<Joinpoint, Interceptor[]>();
}
}
- finally
- {
- unlockWrite();
- }
}
return oldFieldReadInfos;
}
@@ -1197,18 +1172,13 @@
{
if (oldConstructionInfos == UnmodifiableEmptyCollections.EMPTY_CONCURRENT_HASHMAP)
{
- lockWrite();
- try
+ synchronized(lazyCollectionLock)
{
if (oldConstructionInfos == UnmodifiableEmptyCollections.EMPTY_CONCURRENT_HASHMAP)
{
oldConstructionInfos = new ConcurrentHashMap<Joinpoint, Interceptor[]>();
}
}
- finally
- {
- unlockWrite();
- }
}
return oldConstructionInfos;
}
Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/annotation/AnnotationRepository.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/annotation/AnnotationRepository.java 2008-03-11 15:10:16 UTC (rev 70739)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/annotation/AnnotationRepository.java 2008-03-11 15:10:47 UTC (rev 70740)
@@ -48,7 +48,7 @@
private static final String CLASS_ANNOTATION = "CLASS";
/** Read/Write lock to be used when lazy creating the collections */
- protected ReentrantReadWriteLock lock = new ReentrantReadWriteLock();
+ protected Object lazyCollectionLock = new Object();
volatile Map annotations = UnmodifiableEmptyCollections.EMPTY_CONCURRENT_HASHMAP;
volatile Map classAnnotations = UnmodifiableEmptyCollections.EMPTY_CONCURRENT_HASHMAP;
@@ -267,38 +267,17 @@
set.add(annotation);
}
- /**
- * Lock for write
- */
- protected void lockWrite()
- {
- lock.writeLock().lock();
- }
-
- /**
- * Unlock for write
- */
- protected void unlockWrite()
- {
- lock.writeLock().unlock();
- }
-
protected void initAnnotationsMap()
{
if (annotations == UnmodifiableEmptyCollections.EMPTY_CONCURRENT_HASHMAP)
{
- lockWrite();
- try
+ synchronized(lazyCollectionLock)
{
if (annotations == UnmodifiableEmptyCollections.EMPTY_CONCURRENT_HASHMAP)
{
annotations = new ConcurrentHashMap();;
}
}
- finally
- {
- unlockWrite();
- }
}
}
@@ -306,18 +285,13 @@
{
if (classAnnotations == UnmodifiableEmptyCollections.EMPTY_CONCURRENT_HASHMAP)
{
- lockWrite();
- try
+ synchronized(lazyCollectionLock)
{
if (classAnnotations == UnmodifiableEmptyCollections.EMPTY_CONCURRENT_HASHMAP)
{
classAnnotations = new ConcurrentHashMap();;
}
}
- finally
- {
- unlockWrite();
- }
}
}
@@ -325,18 +299,13 @@
{
if (disabledAnnotations == UnmodifiableEmptyCollections.EMPTY_CONCURRENT_HASHMAP)
{
- lockWrite();
- try
+ synchronized(lazyCollectionLock)
{
if (disabledAnnotations == UnmodifiableEmptyCollections.EMPTY_CONCURRENT_HASHMAP)
{
disabledAnnotations = new ConcurrentHashMap();;
}
}
- finally
- {
- unlockWrite();
- }
}
}
}
More information about the jboss-cvs-commits
mailing list