You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by eb...@apache.org on 2005/09/05 17:19:04 UTC
svn commit: r278773 - in /jakarta/commons/proper/configuration/trunk:
src/java/org/apache/commons/configuration/AbstractFileConfiguration.java
src/test/org/apache/commons/configuration/TestFileConfiguration.java
xdocs/changes.xml
Author: ebourg
Date: Mon Sep 5 08:18:58 2005
New Revision: 278773
URL: http://svn.apache.org/viewcvs?rev=278773&view=rev
Log:
Loading a configuration from a directory now throws an exception (Bug 36488)
Modified:
jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/AbstractFileConfiguration.java
jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestFileConfiguration.java
jakarta/commons/proper/configuration/trunk/xdocs/changes.xml
Modified: jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/AbstractFileConfiguration.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/AbstractFileConfiguration.java?rev=278773&r1=278772&r2=278773&view=diff
==============================================================================
--- jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/AbstractFileConfiguration.java (original)
+++ jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/AbstractFileConfiguration.java Mon Sep 5 08:18:58 2005
@@ -245,13 +245,21 @@
{
if (sourceURL == null)
{
- if(StringUtils.isEmpty(getBasePath()))
+ if (StringUtils.isEmpty(getBasePath()))
{
// ensure that we have a valid base path
setBasePath(url.toString());
}
sourceURL = url;
}
+
+ // throw an exception if the target URL is a directory
+ File file = ConfigurationUtils.fileFromURL(url);
+ if (file != null && file.isDirectory())
+ {
+ throw new ConfigurationException("Cannot load a configuration from a directory");
+ }
+
InputStream in = null;
try
Modified: jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestFileConfiguration.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestFileConfiguration.java?rev=278773&r1=278772&r2=278773&view=diff
==============================================================================
--- jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestFileConfiguration.java (original)
+++ jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestFileConfiguration.java Mon Sep 5 08:18:58 2005
@@ -413,4 +413,52 @@
//ok
}
}
+
+ /**
+ * Checks that loading a directory instead of a file throws an exception.
+ */
+ public void testLoadDirectory()
+ {
+ PropertiesConfiguration config = new PropertiesConfiguration();
+
+ try
+ {
+ config.load("target");
+ fail("Could load config from a directory!");
+ }
+ catch (ConfigurationException e)
+ {
+ // ok
+ }
+
+ try
+ {
+ config.load(new File("target"));
+ fail("Could load config from a directory!");
+ }
+ catch (ConfigurationException e)
+ {
+ // ok
+ }
+
+ try
+ {
+ new PropertiesConfiguration("target");
+ fail("Could load config from a directory!");
+ }
+ catch (ConfigurationException e)
+ {
+ // ok
+ }
+
+ try
+ {
+ new PropertiesConfiguration(new File("target"));
+ fail("Could load config from a directory!");
+ }
+ catch (ConfigurationException e)
+ {
+ // ok
+ }
+ }
}
Modified: jakarta/commons/proper/configuration/trunk/xdocs/changes.xml
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/configuration/trunk/xdocs/changes.xml?rev=278773&r1=278772&r2=278773&view=diff
==============================================================================
--- jakarta/commons/proper/configuration/trunk/xdocs/changes.xml (original)
+++ jakarta/commons/proper/configuration/trunk/xdocs/changes.xml Mon Sep 5 08:18:58 2005
@@ -23,6 +23,10 @@
<body>
<release version="1.2-dev" date="in SVN">
+ <action dev="ebourg" type="update" issue="36488">
+ Attempting to load a configuration from a directory instead of a file
+ will now throw a ConfigurationException.
+ </action>
<action dev="oheger" type="update" issue="36447">
If a multi-valued property was involved in an interpolation operation,
AbstractConfiguration created a string representation of the list of all
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org