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 16:35:06 GMT


Heiko Seebach commented on CONFIGURATION-252:

Well, how to determine if a file is absolute?
Since it even depends on the OS, it's not that easy.


What could be the intention of it and what would others think, if they see it defined like

The properties files could reside at

I think, a good definition of the meaning and interpretation of the fileName (regarding the
"File.isAbsolute()" concern) would help.

Maybe defining something simple like the definition before plus
-> If fileName starts with "/" it's always interpreted as absolute. <-
would help?

> 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