[ https://issues.apache.org/jira/browse/CONFIGURATION-641?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15687861#comment-15687861 ]
Oliver Heger commented on CONFIGURATION-641: -------------------------------------------- These are valid points. However, Commons policy does only allow breaking (i.e. binary incompatible) changes in major versions. So such changes could only go in a version 3.0, but not 2.2. The intended use case for Configuration 2.x is that configurations are created via builders. In this setup no problems occur. Direct file operations on configuration objects should be done only in exceptional cases, e.g. when copying a configuration to another location. So I think, documenting the limitations of read() and write() would be acceptable. > XMLConfiguration.load may throw NPE > ----------------------------------- > > Key: CONFIGURATION-641 > URL: https://issues.apache.org/jira/browse/CONFIGURATION-641 > Project: Commons Configuration > Issue Type: Bug > Affects Versions: 2.1 > Environment: Java 8 / Linux > Reporter: Claude Warren > Original Estimate: 1h > Remaining Estimate: 1h > > I expect that > {noformat} > URL url = Test.class.getResource( "/Test.xml"); > XMLConfiguration config = new XMLConfiguration(); > config.read( url.openStream()); > {noformat} > Would read the XML file. However it will throw a NPE at line 967 > {noformat} > private void load(InputSource source) throws ConfigurationException > { > try > { > URL sourceURL = locator.getSourceURL(); // <- NPE here > if (sourceURL != null) > { > source.setSystemId(sourceURL.toString()); > } > {noformat} > I believe that testing for locator == null first will solve the problem as > the rest of the code in the method does not appear to use it. -- This message was sent by Atlassian JIRA (v6.3.4#6332)