Author: markt Date: Wed Oct 19 09:17:05 2011 New Revision: 1186043 URL: http://svn.apache.org/viewvc?rev=1186043&view=rev Log: Fix threading issue when setting accessibility
Modified: tomcat/trunk/java/org/apache/catalina/core/DefaultInstanceManager.java Modified: tomcat/trunk/java/org/apache/catalina/core/DefaultInstanceManager.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/DefaultInstanceManager.java?rev=1186043&r1=1186042&r2=1186043&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/core/DefaultInstanceManager.java (original) +++ tomcat/trunk/java/org/apache/catalina/core/DefaultInstanceManager.java Wed Oct 19 09:17:05 2011 @@ -186,8 +186,8 @@ public class DefaultInstanceManager impl for (AnnotationCacheEntry entry : annotations) { if (entry.getType() == AnnotationCacheEntryType.POST_CONSTRUCT) { Method postConstruct = (Method) entry.getAccessibleObject(); - boolean accessibility = postConstruct.isAccessible(); synchronized (postConstruct) { + boolean accessibility = postConstruct.isAccessible(); postConstruct.setAccessible(true); postConstruct.invoke(instance); postConstruct.setAccessible(accessibility); @@ -230,8 +230,8 @@ public class DefaultInstanceManager impl for (AnnotationCacheEntry entry : annotations) { if (entry.getType() == AnnotationCacheEntryType.PRE_DESTROY) { Method preDestroy = (Method) entry.getAccessibleObject(); - boolean accessibility = preDestroy.isAccessible(); synchronized (preDestroy) { + boolean accessibility = preDestroy.isAccessible(); preDestroy.setAccessible(true); preDestroy.invoke(instance); preDestroy.setAccessible(accessibility); @@ -576,8 +576,8 @@ public class DefaultInstanceManager impl context.lookup(clazz.getName() + "/" + field.getName()); } - accessibility = field.isAccessible(); synchronized (field) { + accessibility = field.isAccessible(); field.setAccessible(true); field.set(instance, lookedupResource); field.setAccessible(accessibility); @@ -620,8 +620,8 @@ public class DefaultInstanceManager impl clazz.getName() + "/" + getName(method)); } - accessibility = method.isAccessible(); synchronized (method) { + accessibility = method.isAccessible(); method.setAccessible(true); method.invoke(instance, lookedupResource); method.setAccessible(accessibility); --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org