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 2014/12/24 08:39:55 UTC

tomee git commit: avoid npe when we fake requests

Repository: tomee
Updated Branches:
  refs/heads/develop 02818cc38 -> 1554b1054


avoid npe when we fake requests


Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/1554b105
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/1554b105
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/1554b105

Branch: refs/heads/develop
Commit: 1554b1054c920ece474d18028b3c20c9444fc176
Parents: 02818cc
Author: Romain Manni-Bucau <rm...@apache.org>
Authored: Wed Dec 24 08:39:37 2014 +0100
Committer: Romain Manni-Bucau <rm...@apache.org>
Committed: Wed Dec 24 08:39:37 2014 +0100

----------------------------------------------------------------------
 .../org/apache/openejb/cdi/CdiAppContextsService.java    | 11 +++++++----
 .../java/org/apache/openejb/cdi/OpenEJBBeanBuilder.java  |  1 -
 .../main/java/org/apache/openejb/cdi/ScopeHelper.java    |  2 --
 .../org/apache/openejb/config/AnnotationDeployer.java    |  1 -
 .../openejb/config/rules/CheckInjectionPointUsage.java   |  5 ++++-
 tck/cdi-embedded/src/test/resources/failing.xml          |  4 ++--
 6 files changed, 13 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tomee/blob/1554b105/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiAppContextsService.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiAppContextsService.java b/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiAppContextsService.java
index 178232c..e80306f 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiAppContextsService.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiAppContextsService.java
@@ -49,11 +49,9 @@ import javax.enterprise.context.SessionScoped;
 import javax.enterprise.context.spi.Context;
 import javax.enterprise.util.AnnotationLiteral;
 import javax.inject.Singleton;
-import javax.servlet.ServletRequest;
 import javax.servlet.ServletRequestEvent;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpSession;
-import javax.servlet.http.HttpSessionEvent;
 import java.lang.annotation.Annotation;
 import java.lang.reflect.Constructor;
 import java.util.ArrayList;
@@ -257,7 +255,9 @@ public class CdiAppContextsService extends AbstractContextsService implements Co
             final HttpServletRequest request = (HttpServletRequest) event.getServletRequest();
             ((ServletRequestContext) rq).setServletRequest(request);
 
-            webBeansContext.getBeanManagerImpl().fireEvent(request, InitializedLiteral.REQUEST);
+            if (request != null) {
+                webBeansContext.getBeanManagerImpl().fireEvent(request, InitializedLiteral.REQUEST);
+            }
 
             if (request != null) {
                 //Re-initialize thread local for session
@@ -283,7 +283,10 @@ public class CdiAppContextsService extends AbstractContextsService implements Co
 
         //Destroy context
         if (context != null) {
-            webBeansContext.getBeanManagerImpl().fireEvent(ServletRequestContext.class.cast(context).getServletRequest(), DestroyedLiteral.REQUEST);
+            final HttpServletRequest servletRequest = ServletRequestContext.class.cast(context).getServletRequest();
+            if (servletRequest != null) {
+                webBeansContext.getBeanManagerImpl().fireEvent(servletRequest, DestroyedLiteral.REQUEST);
+            }
             context.destroy();
         }
 

http://git-wip-us.apache.org/repos/asf/tomee/blob/1554b105/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBBeanBuilder.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBBeanBuilder.java b/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBBeanBuilder.java
index 1dabab0..3f01ebb 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBBeanBuilder.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBBeanBuilder.java
@@ -19,7 +19,6 @@ package org.apache.openejb.cdi;
 
 import org.apache.openejb.BeanContext;
 import org.apache.openejb.assembler.classic.ProxyInterfaceResolver;
-import org.apache.webbeans.component.creation.BeanAttributesBuilder;
 import org.apache.webbeans.config.WebBeansContext;
 import org.apache.webbeans.ejb.common.component.EjbBeanBuilder;
 

http://git-wip-us.apache.org/repos/asf/tomee/blob/1554b105/container/openejb-core/src/main/java/org/apache/openejb/cdi/ScopeHelper.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/cdi/ScopeHelper.java b/container/openejb-core/src/main/java/org/apache/openejb/cdi/ScopeHelper.java
index b7b328e..57ce98a 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/cdi/ScopeHelper.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/cdi/ScopeHelper.java
@@ -19,11 +19,9 @@ package org.apache.openejb.cdi;
 
 import org.apache.webbeans.spi.ContextsService;
 
-import javax.enterprise.context.ApplicationScoped;
 import javax.enterprise.context.ConversationScoped;
 import javax.enterprise.context.RequestScoped;
 import javax.enterprise.context.SessionScoped;
-import javax.inject.Singleton;
 import javax.servlet.ServletContext;
 import javax.servlet.http.HttpSession;
 

http://git-wip-us.apache.org/repos/asf/tomee/blob/1554b105/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java b/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
index 1f16335..cee4c2e 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
@@ -187,7 +187,6 @@ import javax.ejb.TransactionManagementType;
 import javax.enterprise.context.NormalScope;
 import javax.enterprise.inject.Produces;
 import javax.enterprise.inject.Stereotype;
-import javax.enterprise.inject.spi.BeanManager;
 import javax.enterprise.inject.spi.DefinitionException;
 import javax.enterprise.inject.spi.Extension;
 import javax.inject.Scope;

http://git-wip-us.apache.org/repos/asf/tomee/blob/1554b105/container/openejb-core/src/main/java/org/apache/openejb/config/rules/CheckInjectionPointUsage.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/config/rules/CheckInjectionPointUsage.java b/container/openejb-core/src/main/java/org/apache/openejb/config/rules/CheckInjectionPointUsage.java
index b736f40..97b32f2 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/config/rules/CheckInjectionPointUsage.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/config/rules/CheckInjectionPointUsage.java
@@ -19,10 +19,12 @@ package org.apache.openejb.config.rules;
 
 import org.apache.openejb.config.EjbModule;
 
+import javax.enterprise.inject.Default;
 import javax.enterprise.inject.spi.DefinitionException;
 import javax.enterprise.inject.spi.InjectionPoint;
 import javax.inject.Inject;
 import javax.servlet.http.HttpServlet;
+import java.lang.annotation.Annotation;
 import java.lang.reflect.Field;
 
 /**
@@ -42,7 +44,8 @@ public class CheckInjectionPointUsage extends ValidationBase {
                     continue;
                 }
 
-                if (field.getAnnotations().length == 1) {
+                final Annotation[] annotations = field.getAnnotations();
+                if (annotations.length == 1 || (annotations.length == 2 && field.getAnnotation(Default.class) != null)) {
                     throw new DefinitionException("Can't inject InjectionPoint in " + field.getDeclaringClass());
                 } // else we should check is there is no other qualifier than @Default but too early
             }

http://git-wip-us.apache.org/repos/asf/tomee/blob/1554b105/tck/cdi-embedded/src/test/resources/failing.xml
----------------------------------------------------------------------
diff --git a/tck/cdi-embedded/src/test/resources/failing.xml b/tck/cdi-embedded/src/test/resources/failing.xml
index 583fe4d..40f6f29 100644
--- a/tck/cdi-embedded/src/test/resources/failing.xml
+++ b/tck/cdi-embedded/src/test/resources/failing.xml
@@ -18,8 +18,8 @@
 <suite name="CDI TCK" verbose="0">
   <test name="CDI TCK">
     <!-- -Dopenejb.cdi.filter.classloader=false -Dorg.apache.openejb.assembler.classic.WebAppBuilder=org.apache.openejb.web.LightweightWebAppBuilder -Dopenejb.cdi.debug=true -Dopenejb.http.mock-request=true  -->
-    <classes>
-      <class name="org.jboss.cdi.tck.tests.context.request.event.RequestScopeEventTest" />
+    <classes><!-- org.jboss.cdi.tck.tests.context.conversation.ClientConversationContextTest, org.jboss.cdi.tck.tests.context.application.ApplicationContextTest, org.jboss.cdi.tck.tests.extensions.beanManager.beanAttributes.CreateBeanAttributesTest, org.jboss.cdi.tck.tests.event.fires.FireEventTest, org.jboss.cdi.tck.tests.extensions.lifecycle.processInjectionPoint.ProcessInjectionPointFiredTest -->
+      <class name="org.jboss.cdi.tck.tests.context.application.async.ApplicationContextAsyncListenerTest" />
     </classes>
   </test>
 </suite>