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) {