You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2013/05/09 23:14:26 UTC
svn commit: r1480776 -
/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/BeanContext.java
Author: rmannibucau
Date: Thu May 9 21:14:26 2013
New Revision: 1480776
URL: http://svn.apache.org/r1480776
Log:
caching constructorInjectionBean
Modified:
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/BeanContext.java
Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/BeanContext.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/BeanContext.java?rev=1480776&r1=1480775&r2=1480776&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/BeanContext.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/BeanContext.java Thu May 9 21:14:26 2013
@@ -101,6 +101,7 @@ public class BeanContext extends Deploym
public static final String USER_INTERCEPTOR_SEPARATOR = ",| |;";
private boolean isPassivatingScope = true;
+ private ConstructorInjectionBean<Object> constructorInjectionBean = null;
public boolean isDynamicallyImplemented() {
return proxyClass != null;
@@ -1573,7 +1574,18 @@ public class BeanContext extends Deploym
}
private ConstructorInjectionBean<Object> createConstructorInjectionBean(final WebBeansContext webBeansContext) {
- return new ConstructorInjectionBean<Object>(webBeansContext, getManagedClass(), webBeansContext.getAnnotatedElementFactory().newAnnotatedType(getManagedClass()));
+ if (constructorInjectionBean != null) {
+ return constructorInjectionBean;
+ }
+
+ synchronized (this) { // concurrentmodificationexception because of annotatedtype internals otherwise
+ if (constructorInjectionBean == null) {
+ constructorInjectionBean = new ConstructorInjectionBean<Object>(
+ webBeansContext, getManagedClass(),
+ webBeansContext.getAnnotatedElementFactory().newAnnotatedType(getManagedClass()));
+ }
+ }
+ return constructorInjectionBean;
}
@SuppressWarnings("unchecked")