You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@deltaspike.apache.org by "Gerhard Petracek (JIRA)" <ji...@apache.org> on 2014/07/30 22:26:39 UTC
[jira] [Updated] (DELTASPIKE-679) NPE in BeanManagerProvider if
parentClassLoader is null
[ https://issues.apache.org/jira/browse/DELTASPIKE-679?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Gerhard Petracek updated DELTASPIKE-679:
----------------------------------------
Assignee: Mark Struberg
> 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: Mark Struberg
>
> 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)