Repository: tomee
Updated Branches:
  refs/heads/master 60a2e64f6 -> 02aecf19d


few more NPE protection against no webbeans context


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

Branch: refs/heads/master
Commit: 02aecf19d74249103f7ac80a8b4e4ef2ffbe7fa4
Parents: 60a2e64
Author: Romain Manni-Bucau <rmannibu...@apache.org>
Authored: Tue Jun 16 11:39:43 2015 +0200
Committer: Romain Manni-Bucau <rmannibu...@apache.org>
Committed: Tue Jun 16 11:39:43 2015 +0200

----------------------------------------------------------------------
 .../server/cxf/rs/CdiResourceProvider.java        | 18 ++++++++++--------
 .../openejb/server/cxf/rs/CxfRsHttpListener.java  |  2 +-
 .../openejb/server/httpd/EndWebBeansListener.java |  6 ++++++
 .../apache/openejb/server/rest/RESTService.java   |  2 +-
 4 files changed, 18 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tomee/blob/02aecf19/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CdiResourceProvider.java
----------------------------------------------------------------------
diff --git 
a/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CdiResourceProvider.java
 
b/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CdiResourceProvider.java
index 556f7f7..fd1ad05 100644
--- 
a/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CdiResourceProvider.java
+++ 
b/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CdiResourceProvider.java
@@ -75,9 +75,9 @@ public abstract class CdiResourceProvider implements 
ResourceProvider {
         postConstructMethod = ResourceUtils.findPostConstructMethod(clazz);
         preDestroyMethod = ResourceUtils.findPreDestroyMethod(clazz);
 
-        bm = webbeansContext.getBeanManagerImpl();
+        bm = webbeansContext == null ? null : 
webbeansContext.getBeanManagerImpl();
         this.clazz = clazz;
-        if (bm.isInUse()) {
+        if (bm != null && bm.isInUse()) {
             try {
                 final Set<Bean<?>> beans = bm.getBeans(clazz);
                 bean = bm.resolve(beans);
@@ -331,13 +331,15 @@ public abstract class CdiResourceProvider implements 
ResourceProvider {
             injector = new InjectionProcessor<>(instance, new 
ArrayList<>(injections), InjectionProcessor.unwrap(context));
             instance = injector.createInstance();
 
-            final BeanManager bm = webbeansContext.getBeanManagerImpl();
-            creationalContext = bm.createCreationalContext(null);
+            final BeanManager bm = webbeansContext == null ? null : 
webbeansContext.getBeanManagerImpl();
+            if (bm != null) {
+                creationalContext = bm.createCreationalContext(null);
 
-            try {
-                OWBInjector.inject(bm, instance, creationalContext);
-            } catch (final Exception e) {
-                // ignored
+                try {
+                    OWBInjector.inject(bm, instance, creationalContext);
+                } catch (final Exception e) {
+                    // ignored
+                }
             }
 
             // injector.postConstruct(); // it doesn't know it

http://git-wip-us.apache.org/repos/asf/tomee/blob/02aecf19/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java
----------------------------------------------------------------------
diff --git 
a/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java
 
b/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java
index 56bc5df..fe5e613 100644
--- 
a/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java
+++ 
b/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java
@@ -887,7 +887,7 @@ public class CxfRsHttpListener implements RsHttpListener {
         if (comparatorClass == null) {
             comparator = DefaultProviderComparator.INSTANCE;
         } else {
-            final BeanManagerImpl bm = ctx.getBeanManagerImpl();
+            final BeanManagerImpl bm = ctx == null ? null : 
ctx.getBeanManagerImpl();
             if (bm != null && bm.isInUse()) {
                 try {
                     final Class<?> clazz = 
Thread.currentThread().getContextClassLoader().loadClass(comparatorClass);

http://git-wip-us.apache.org/repos/asf/tomee/blob/02aecf19/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/EndWebBeansListener.java
----------------------------------------------------------------------
diff --git 
a/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/EndWebBeansListener.java
 
b/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/EndWebBeansListener.java
index de5841f..722c56c 100644
--- 
a/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/EndWebBeansListener.java
+++ 
b/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/EndWebBeansListener.java
@@ -83,6 +83,9 @@ public class EndWebBeansListener implements 
ServletContextListener, ServletReque
      */
     @Override
     public void sessionDestroyed(final HttpSessionEvent event) {
+        if (contextsService == null) {
+            return;
+        }
         WebBeansListenerHelper.ensureRequestScope(contextsService, this);
     }
 
@@ -107,6 +110,9 @@ public class EndWebBeansListener implements 
ServletContextListener, ServletReque
 
     @Override
     public void contextDestroyed(ServletContextEvent servletContextEvent) {
+        if (contextsService == null) {
+            return;
+        }
         WebBeansListenerHelper.ensureRequestScope(contextsService, this);
     }
 }

http://git-wip-us.apache.org/repos/asf/tomee/blob/02aecf19/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.java
----------------------------------------------------------------------
diff --git 
a/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.java
 
b/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.java
index 6f58737..e249e4c 100644
--- 
a/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.java
+++ 
b/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.java
@@ -144,7 +144,7 @@ public abstract class RESTService implements ServerService, 
SelfManaging {
                     try {
                         appClazz = classLoader.loadClass(app);
                         application = 
Application.class.cast(appClazz.newInstance());
-                        if (owbCtx.getBeanManagerImpl().isInUse()) {
+                        if (owbCtx != null && 
owbCtx.getBeanManagerImpl().isInUse()) {
                             try {
                                 webContext.inject(application);
                             } catch (final Exception e) {

Reply via email to