Author: maartenc
Date: Tue Jan 12 10:09:16 2010
New Revision: 898269
URL: http://svn.apache.org/viewvc?rev=898269&view=rev
Log:
FIX: ivy.settings.dir space escaping problem (IVY-1162)
Modified:
ant/ivy/core/trunk/CHANGES.txt
ant/ivy/core/trunk/src/java/org/apache/ivy/core/settings/XmlSettingsParser.java
Modified: ant/ivy/core/trunk/CHANGES.txt
URL:
http://svn.apache.org/viewvc/ant/ivy/core/trunk/CHANGES.txt?rev=898269&r1=898268&r2=898269&view=diff
==============================================================================
--- ant/ivy/core/trunk/CHANGES.txt (original)
+++ ant/ivy/core/trunk/CHANGES.txt Tue Jan 12 10:09:16 2010
@@ -105,6 +105,7 @@
- IMPROVEMENT: Trace a message when a property file referenced from the
settings doesn't exixts (IVY-1074)
- IMPROVEMENT: use defaultconf in combination with defaultconfmapping
(IVY-1135) (thanks to Jon Schneider)
+- FIX: ivy.settings.dir space escaping problem (IVY-1162)
- FIX: Ivy cannot parse alternate format for Maven MD5 files (IVY-1155)
- FIX: Ivy does not close URL connection to ivy-report.xsl properly (IVY-1152)
- FIX: Artifact report throws NPE when artifact is not in cache (IVY-1150)
(thanks to Steve Jones)
Modified:
ant/ivy/core/trunk/src/java/org/apache/ivy/core/settings/XmlSettingsParser.java
URL:
http://svn.apache.org/viewvc/ant/ivy/core/trunk/src/java/org/apache/ivy/core/settings/XmlSettingsParser.java?rev=898269&r1=898268&r2=898269&view=diff
==============================================================================
---
ant/ivy/core/trunk/src/java/org/apache/ivy/core/settings/XmlSettingsParser.java
(original)
+++
ant/ivy/core/trunk/src/java/org/apache/ivy/core/settings/XmlSettingsParser.java
Tue Jan 12 10:09:16 2010
@@ -415,9 +415,17 @@
settingsURL = urlFromFileAttribute(propFilePath);
Message.verbose("including file: " + settingsURL);
if ("file".equals(settingsURL.getProtocol())) {
- ivy.setSettingsVariables(
- Checks.checkAbsolute(settingsURL.getPath(),
- "settings include path"));
+ try {
+ File settingsFile = new File(new
URI(settingsURL.toExternalForm()));
+ ivy.setSettingsVariables(
+ Checks.checkAbsolute(settingsFile,
+ "settings include path"));
+ } catch (URISyntaxException e) {
+ // try to make the best of it...
+ ivy.setSettingsVariables(
+ Checks.checkAbsolute(settingsURL.getPath(),
+ "settings include path"));
+ }
} else {
ivy.setSettingsVariables(settingsURL);
}
@@ -442,14 +450,14 @@
File incFile = new File(filePath);
if (incFile.isAbsolute()) {
if (!incFile.exists()) {
- throw new FileNotFoundException();
+ throw new FileNotFoundException(incFile.getAbsolutePath());
}
return incFile.toURI().toURL();
} else if ("file".equals(this.settings.getProtocol())) {
try {
File settingsFile = new File(new
URI(this.settings.toExternalForm()));
if (!settingsFile.exists()) {
- throw new FileNotFoundException();
+ throw new
FileNotFoundException(settingsFile.getAbsolutePath());
}
return new File(settingsFile.getParentFile(),
filePath).toURI().toURL();
} catch (URISyntaxException e) {
@@ -504,7 +512,7 @@
configurator.typeDef(name, clazz);
}
- private void classpathStarted(Map attributes) throws MalformedURLException
{
+ private void classpathStarted(Map attributes) throws IOException {
String urlStr = (String) attributes.get("url");
URL url = null;
if (urlStr == null) {
@@ -513,7 +521,7 @@
throw new IllegalArgumentException(
"either url or file should be given for classpath
element");
} else {
- url = Checks.checkAbsolute(file, "classpath").toURI().toURL();
+ url = urlFromFileAttribute(file);
}
} else {
url = new URL(urlStr);