Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
2.1.0
-
None
-
None
Description
When an ivysettings file is included from a path with spaces in it, the ivy.settings.dir property becomes doubly escaped. I run into this problem when trying to configure the ivy classpath. This is causing a lot of pain for our team members using windows since they want to keep everything under their home directory which includes spaces in the path due to the "C:\Documents and Settings" directory. I'll be attaching a testcase which throws an exception when "java -jar ivy-2.1.0.jar -settings ivysettings.xml" is called. The exception root cause is:
Caused by: java.lang.RuntimeException: impossible to define new type: class not found: Foo in file:/tmp/x/dir%2520with%2520spaces/foo.jar nor Ivy classloader
at org.apache.ivy.core.settings.IvySettings.classForName(IvySettings.java:648)
at org.apache.ivy.core.settings.IvySettings.typeDef(IvySettings.java:632)
at org.apache.ivy.core.settings.IvySettings.typeDef(IvySettings.java:628)
at org.apache.ivy.core.settings.XmlSettingsParser.typedefStarted(XmlSettingsParser.java:503)
at org.apache.ivy.core.settings.XmlSettingsParser.startElement(XmlSettingsParser.java:205)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:504)
at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:182)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1315)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2723)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:624)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:486)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:810)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:740)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:110)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1208)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:525)
at javax.xml.parsers.SAXParser.parse(SAXParser.java:392)
at javax.xml.parsers.SAXParser.parse(SAXParser.java:274)
at org.apache.ivy.core.settings.XmlSettingsParser.doParse(XmlSettingsParser.java:160)
... 23 more