[
https://issues.apache.org/jira/browse/DELTASPIKE-679?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14082087#comment-14082087
]
Sven Panko commented on DELTASPIKE-679:
---------------------------------------
Hey Christian,
works as expected now, thank you!
> NPE in BeanManagerProvider if parentClassLoader is null
> -------------------------------------------------------
>
> Key: DELTASPIKE-679
> URL: https://issues.apache.org/jira/browse/DELTASPIKE-679
> Project: DeltaSpike
> Issue Type: Bug
> Components: Core
> Affects Versions: 1.0.0, 1.0.1
> Environment: Mac OS X 10.9, Java 1.7.45, Wildfly 8.1
> Reporter: Sven Panko
> Assignee: Christian Kaltepoth
> Fix For: 1.0.2
>
>
> I am encountering an NPE in BeanManagerProvider.getParentBeanManagerInfo()
> if the parentClassLoader is null. In my scenario I had to add Wildfly's
> jboss-modules.jar to the JVM's bootclasspath (using
> -Xbootclasspath/a:"jboss-modules.jar"). It seems as if this causes the
> parentClassLoader returned by the first statement to be null, which causes an
> NPE in the following if-statement (see below). I patched my local
> installation and added a check for parentClassLoader == null and everything
> works as expected now.
> I am honestly not 100% sure why classLoader.getParent() returns null and why
> this only happens if I put the jboss-modules.jar on the bootclasspath, but
> unfortunately I have to do this to circumvent a JAXP problem (see
> https://community.jboss.org/thread/171177).
> In addition to that I am not sure whether this is actually related to the
> message "When using the BeanManager to retrieve Beans before the Container is
> started, non-portable behaviour results!" At first I thought this occurred
> because of @Startup I placed on some of my singleton EJBs, but even after
> removing the startup annotation and using a timer to trigger initialization
> of some classes, I still get this message (and my container is fully booted
> at that time).
> Source:
> {code:java}
> private BeanManagerInfo getParentBeanManagerInfo(ClassLoader classLoader)
> {
> ClassLoader parentClassLoader = classLoader.getParent();
> if (parentClassLoader.equals(ClassLoader.getSystemClassLoader()))
> {
> return null;
> }
> BeanManagerInfo bmi = getBeanManagerInfo(parentClassLoader);
> if (bmi == null)
> {
> bmi = getParentBeanManagerInfo(parentClassLoader);
> }
> return bmi;
> }
> {code}
--
This message was sent by Atlassian JIRA
(v6.2#6252)