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/08/25 18:53:48 UTC
svn commit: r1620375 -
/tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/realm/LazyRealm.java
Author: rmannibucau
Date: Mon Aug 25 16:53:47 2014
New Revision: 1620375
URL: http://svn.apache.org/r1620375
Log:
TOMEE-1334 trying to avoid NPE when CDI context is not yet started
Modified:
tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/realm/LazyRealm.java
Modified: tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/realm/LazyRealm.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/realm/LazyRealm.java?rev=1620375&r1=1620374&r2=1620375&view=diff
==============================================================================
--- tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/realm/LazyRealm.java (original)
+++ tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/realm/LazyRealm.java Mon Aug 25 16:53:47 2014
@@ -103,7 +103,11 @@ public class LazyRealm extends Lifecycle
throw new TomEERuntimeException(e);
}
} else {
- final BeanManager bm = WebBeansContext.currentInstance().getBeanManagerImpl();
+ final WebBeansContext webBeansContext = WebBeansContext.currentInstance();
+ if (webBeansContext == null) {
+ return null; // too early to have a cdi bean, skip these methods - mainly init() but @PostConstruct works then
+ }
+ final BeanManager bm = webBeansContext.getBeanManagerImpl();
final Set<Bean<?>> beans = bm.getBeans(clazz);
final Bean<?> bean = bm.resolve(beans);
creationalContext = bm.createCreationalContext(null);
@@ -128,7 +132,7 @@ public class LazyRealm extends Lifecycle
@Override
protected void initInternal() throws LifecycleException {
final Realm r = instance();
- if (Lifecycle.class.isInstance(r)) {
+ if (r != null && Lifecycle.class.isInstance(r)) {
Lifecycle.class.cast(r).init();
}
}
@@ -136,7 +140,7 @@ public class LazyRealm extends Lifecycle
@Override
protected void startInternal() throws LifecycleException {
final Realm r = instance();
- if (Lifecycle.class.isInstance(r)) {
+ if (r != null && Lifecycle.class.isInstance(r)) {
Lifecycle.class.cast(r).start();
}
setState(LifecycleState.STARTING);
@@ -145,7 +149,7 @@ public class LazyRealm extends Lifecycle
@Override
protected void stopInternal() throws LifecycleException {
final Realm r = instance();
- if (Lifecycle.class.isInstance(r)) {
+ if (r != null && Lifecycle.class.isInstance(r)) {
Lifecycle.class.cast(r).stop();
}
setState(LifecycleState.STOPPING);
@@ -154,7 +158,7 @@ public class LazyRealm extends Lifecycle
@Override
protected void destroyInternal() throws LifecycleException {
final Realm r = instance();
- if (Lifecycle.class.isInstance(r)) {
+ if (r != null && Lifecycle.class.isInstance(r)) {
Lifecycle.class.cast(r).destroy();
}
}
@@ -162,7 +166,7 @@ public class LazyRealm extends Lifecycle
@Override
public Container getContainer() {
if (delegate != null) {
- return instance().getContainer();
+ return delegate.getContainer();
}
return container;
}
@@ -181,7 +185,7 @@ public class LazyRealm extends Lifecycle
});
if (delegate != null) {
- instance().setContainer(container);
+ delegate.setContainer(container);
} else {
this.container = Context.class.cast(container);
}
@@ -189,7 +193,11 @@ public class LazyRealm extends Lifecycle
@Override
public void addPropertyChangeListener(final PropertyChangeListener listener) {
- instance().addPropertyChangeListener(listener);
+ final Realm instance = instance();
+ if (instance == null) {
+ return;
+ }
+ instance.addPropertyChangeListener(listener);
}
@Override
@@ -242,6 +250,10 @@ public class LazyRealm extends Lifecycle
@Override
public void removePropertyChangeListener(final PropertyChangeListener listener) {
- instance().removePropertyChangeListener(listener);
+ final Realm instance = instance();
+ if (instance == null) {
+ return;
+ }
+ instance.removePropertyChangeListener(listener);
}
}