Author: oheger Date: Thu Dec 1 20:53:13 2016 New Revision: 1772266 URL: http://svn.apache.org/viewvc?rev=1772266&view=rev Log: [CONFIGURATION-641] Improved exception thrown by load().
XMLConfiguration.load() now checks whether the locator has been correctly initialized. If not, an exception with a helpful message is thrown. Modified: commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration2/XMLConfiguration.java commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration2/TestXMLConfiguration.java Modified: commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration2/XMLConfiguration.java URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration2/XMLConfiguration.java?rev=1772266&r1=1772265&r2=1772266&view=diff ============================================================================== --- commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration2/XMLConfiguration.java (original) +++ commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration2/XMLConfiguration.java Thu Dec 1 20:53:13 2016 @@ -962,6 +962,13 @@ public class XMLConfiguration extends Ba */ private void load(InputSource source) throws ConfigurationException { + if (locator == null) + { + throw new ConfigurationException("Load operation not properly " + + "initialized! Do not call read(InputStream) directly," + + " but use a FileHandler to load a configuration."); + } + try { URL sourceURL = locator.getSourceURL(); Modified: commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration2/TestXMLConfiguration.java URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration2/TestXMLConfiguration.java?rev=1772266&r1=1772265&r2=1772266&view=diff ============================================================================== --- commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration2/TestXMLConfiguration.java (original) +++ commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration2/TestXMLConfiguration.java Thu Dec 1 20:53:13 2016 @@ -1622,6 +1622,28 @@ public class TestXMLConfiguration } /** + * Tests a direct invocation of the read() method. This is not allowed + * because certain initializations have not been done. This test is + * related to CONFIGURATION-641. + */ + @Test + public void testReadCalledDirectly() throws IOException, ConfigurationException + { + conf = new XMLConfiguration(); + String content = "<configuration><test>1</test></configuration>"; + ByteArrayInputStream bis = new ByteArrayInputStream(content.getBytes()); + try + { + conf.read(bis); + fail("No exception thrown!"); + } + catch (ConfigurationException e) + { + assertThat(e.getMessage(), containsString("FileHandler")); + } + } + + /** * Removes the test output file if it exists. */ private void removeTestFile()