You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@xmlbeans.apache.org by "Daniel Hengst (JIRA)" <xm...@xml.apache.org> on 2013/09/27 19:04:02 UTC

[jira] [Created] (XMLBEANS-506) NPE trying to load resource file if XmlBeans was loaded by the bootstrap ClassLoader

Daniel Hengst created XMLBEANS-506:
--------------------------------------

             Summary: NPE trying to load resource file if XmlBeans was loaded by the bootstrap ClassLoader
                 Key: XMLBEANS-506
                 URL: https://issues.apache.org/jira/browse/XMLBEANS-506
             Project: XMLBeans
          Issue Type: Bug
    Affects Versions: Version 2.5
         Environment: JBoss 6.1.0, JVM 1.6.0_30, CentOS 5.7 x86_64
            Reporter: Daniel Hengst


To solve a dependency issue, we put XmlBeans 2.5.0 into the endorsed folder. This brought the following exception:

java.lang.NullPointerException
  at org.apache.xmlbeans.impl.store.Path.<clinit>(Path.java:65)
  at java.lang.Class.forName0(Native Method)
  at java.lang.Class.forName(Class.java:169)
  at org.apache.xmlbeans.impl.schema.SchemaTypeLoaderBase.getMethod(SchemaTypeLoaderBase.java:73)
  at org.apache.xmlbeans.impl.schema.SchemaTypeLoaderBase.<clinit>(SchemaTypeLoaderBase.java:66)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  at java.lang.reflect.Method.invoke(Method.java:597)
  at org.apache.xmlbeans.XmlBeans.getNoType(XmlBeans.java:856)
  at org.apache.xmlbeans.XmlBeans.<clinit>(XmlBeans.java:881)

The source code of org.apache.xmlbeans.impl.store.Path looks like this:

63: ClassLoader cl = Path.class.getClassLoader();
64: String id = "META-INF/services/org.apache.xmlbeans.impl.store.PathDelegate.SelectPathInterface";
65: InputStream in = cl.getResourceAsStream(id); <- NPE occurs here

This appears to be a bug. The JavaDoc for getClassLoader() says: "Some implementations may use null to represent the bootstrap class loader. This method will return null in such implementations if this class was loaded by the bootstrap class loader." So the caller of getClassLoader() should take into account that it might return null, which does not happen here. I would suggest changing line 65 to the following:

InputStream in = Path.class.getResourceAsStream(id);

I checked XmlBeans 2.6.0 and browsed the SVN sources, the problem still exists.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@xmlbeans.apache.org
For additional commands, e-mail: dev-help@xmlbeans.apache.org