Detection of absolute fileNames when configuration sources are defined in a JAR 
file
------------------------------------------------------------------------------------

                 Key: CONFIGURATION-252
                 URL: https://issues.apache.org/jira/browse/CONFIGURATION-252
             Project: Commons Configuration
          Issue Type: Bug
    Affects Versions: 1.3
         Environment: Linux
            Reporter: Heiko Seebach


When using several configuration sources, the sources are defined in a an xml 
attribute like 
fileName="usergui.properties"
The method org.apache.commons.configuration.ConfigurationUtils.getFile(String 
basePath, String fileName) converts the basePath and fileName into a File.
The JavaDoc says: "The parameter strings can be relative files, absolute files 
and URLs as well."

The file containing the definition of the configuration sources will become the 
basePath of this method.
After a log of debugging I found, that if the basePath start with "jar:" the 
method assumes that the fileName is relative, evene if it's absolute. This 
happens, because there's a ProtocolHandler for Jar files and "jar:" is a valid 
protocol. So the statement "new URL(new URL(basePath), fileName)" doesn't throw 
a MalformedUrlException.
Since the URL is valid, it's never checked, if the fileName may be absolute. 

Attention: this is only the case on Unix/Linux, since this is a valid URL
jar:file:/C:/myjar.jar!/my-config.xml/someprops.properties
while under Windows, a MalformedUrlException will be thrown, when the fileName 
is absolute: 
jar:file:/C:/myjar.jar!/my-config.xml/c:/someprops.properties

I attached a patch that checks, whether the URL protocol is "jar" and the 
fileName is absolute. If so, the absolute file will be used.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to