commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Oliver Heger (JIRA)" <>
Subject [jira] Resolved: (CONFIGURATION-252) Detection of absolute fileNames when configuration sources are defined in a JAR file
Date Sat, 03 Feb 2007 16:22:05 GMT


Oliver Heger resolved CONFIGURATION-252.

       Resolution: Fixed
    Fix Version/s: 1.4

The getFile() method now checks first whether an absolute file name is passed in. A note about
the behavior of File.isAbsolute() on Windows and Unix was also added to the Javadocs.

> 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
>         Assigned To: Oliver Heger
>             Fix For: 1.4
>         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