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)