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/15 23:24:02 UTC
svn commit: r1483097 -
/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/WebContext.java
Author: rmannibucau
Date: Wed May 15 21:24:02 2013
New Revision: 1483097
URL: http://svn.apache.org/r1483097
Log:
WebContext NPE protection even from beanClass and not only for inject
Modified:
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/WebContext.java
Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/WebContext.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/WebContext.java?rev=1483097&r1=1483096&r2=1483097&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/WebContext.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/WebContext.java Wed May 15 21:24:02 2013
@@ -111,23 +111,42 @@ public class WebContext {
final WebBeansContext webBeansContext = getWebBeansContext();
final ConstructorInjectionBean<Object> beanDefinition = getConstructorInjectionBean(beanClass, webBeansContext);
- final CreationalContext<Object> creationalContext = webBeansContext.getBeanManagerImpl().createCreationalContext(beanDefinition);
+ final CreationalContext<Object> creationalContext;
+ final Object o;
+ if (webBeansContext == null) {
+ creationalContext = null;
+ try {
+ o = beanClass.newInstance();
+ } catch (final InstantiationException e) {
+ throw new OpenEJBException(e);
+ } catch (final IllegalAccessException e) {
+ throw new OpenEJBException(e);
+ }
+ } else {
+ creationalContext = webBeansContext.getBeanManagerImpl().createCreationalContext(beanDefinition);
+ o = beanDefinition.create(creationalContext);
+ }
// Create bean instance
- final Object o = beanDefinition.create(creationalContext);
final Context unwrap = InjectionProcessor.unwrap(getInitialContext());
final InjectionProcessor injectionProcessor = new InjectionProcessor(o, injections, unwrap);
final Object beanInstance = injectionProcessor.createInstance();
- InjectionTargetBean<Object> bean = InjectionTargetBean.class.cast(beanDefinition);
- bean.getInjectionTarget().inject(beanInstance, creationalContext);
+ if (webBeansContext != null) {
+ InjectionTargetBean<Object> bean = InjectionTargetBean.class.cast(beanDefinition);
+ bean.getInjectionTarget().inject(beanInstance, creationalContext);
- creatonalContexts.put(beanInstance, creationalContext);
+ creatonalContexts.put(beanInstance, creationalContext);
+ }
return beanInstance;
}
private ConstructorInjectionBean<Object> getConstructorInjectionBean(final Class beanClass, final WebBeansContext webBeansContext) {
+ if (webBeansContext == null) {
+ return null;
+ }
+
ConstructorInjectionBean<Object> beanDefinition = constructorInjectionBeanCache.get(beanClass);
if (beanDefinition == null) {
synchronized (this) {