commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Heiko Seebach (JIRA)" <>
Subject [jira] Commented: (CONFIGURATION-252) Detection of absolute fileNames when configuration sources are defined in a JAR file
Date Fri, 02 Feb 2007 22:54:05 GMT


Heiko Seebach commented on CONFIGURATION-252:

Yes, I think that's fine. Maybe the JavaDoc could remind the the user that 
new File("/").isAbsolute() is false under Windows but true under Unix....

> Detection of absolute fileNames when configuration sources are defined in a JAR file
> ------------------------------------------------------------------------------------
>                 Key: CONFIGURATION-252
>                 URL:
>             Project: Commons Configuration
>          Issue Type: Bug
>    Affects Versions: 1.3
>         Environment: Linux
>            Reporter: Heiko Seebach
>         Attachments: support-for-jar-protocol.patch.txt
> When using several configuration sources, the sources are defined in a an xml attribute
> fileName=""
> 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/
> while under Windows, a MalformedUrlException will be thrown, when the fileName is absolute:

> jar:file:/C:/myjar.jar!/my-config.xml/c:/
> 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:
For additional commands, e-mail:

View raw message