Hello Peter,

First of all your code change is very clean and looks like a
simplification. :-)



I have tried on Windows2000 with JDK 1.5

results :

ant -f docs.xml -lib c:/opt/velocity\#1.4/velocity-dep-1.4.jar -lib
c:/opt/velocity\#1.4/build/lib/jdom-b9.jar
java.lang.IllegalArgumentException: URI has a fragment component

    at java.io.File.<init>(File.java:342)

    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

    at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)

    at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)

    at java.lang.reflect.Constructor.newInstance(Constructor.java:494)

    at org.apache.tools.ant.launch.Locator.fromURI(Locator.java:162)

    at org.apache.tools.ant.launch.Launcher.run(Launcher.java:267)

    at org.apache.tools.ant.launch.Launcher.main(Launcher.java:99)

I wonder whether the lines 146 to 181 in Locator.java which I copied
from a bug report of Jesse are good.





Antoine


Peter Reilly wrote:
> Hi,
> Can someone on a windows system check that this works there?
>
> i.e. the -lib option to ant
>
> Peter
>
>
> On 4/19/06, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
>   
>> Author: peterreilly
>> Date: Wed Apr 19 03:50:02 2006
>> New Revision: 395206
>>
>> URL: http://svn.apache.org/viewcvs?rev=395206&view=rev
>> Log:
>> escape none URL characters
>>
>> Modified:
>>     ant/core/trunk/src/main/org/apache/tools/ant/launch/Locator.java
>>
>> Modified: ant/core/trunk/src/main/org/apache/tools/ant/launch/Locator.java
>> URL:
>> http://svn.apache.org/viewcvs/ant/core/trunk/src/main/org/apache/tools/ant/launch/Locator.java?rev=395206&r1=395205&r2=395206&view=diff
>>
>> ==============================================================================
>> --- ant/core/trunk/src/main/org/apache/tools/ant/launch/Locator.java
>> (original)
>> +++ ant/core/trunk/src/main/org/apache/tools/ant/launch/Locator.java Wed
>> Apr 19 03:50:02 2006
>> @@ -401,7 +401,20 @@
>>              String path = location.getPath();
>>              for (int i = 0; i < extensions.length; ++i) {
>>                  if (path.toLowerCase().endsWith(extensions[i])) {
>> -                    urls[0] = location.toURL();
>> +                    try {
>> +                        /**
>> +                         * File.toURL() does not encode characters like
>> #.
>> +                         * File.toURI() has been introduced in java 1.4,
>> so
>> +                         * ANT cannot use it (except by reflection)
>> +                         * FileUtils.toURI() cannot be used by
>> Locator.java
>> +                         * Implemented this way.
>> +                         * File.toURL() adds file: and changes '\' to '/'
>> for dos OSes
>> +                         * encodeUri converts characters like ' ' and '#'
>> to %DD
>> +                         */
>> +                        urls[0] = new URL(encodeUri(location.toURL
>> ().toString()));
>> +                    } catch (UnsupportedEncodingException ex) {
>> +                        throw new MalformedURLException(ex.toString());
>> +                    }
>>                      break;
>>                  }
>>              }
>> @@ -420,7 +433,12 @@
>>              });
>>          urls = new URL[matches.length];
>>          for (int i = 0; i < matches.length; ++i) {
>> -            urls[i] = matches[i].toURL();
>> +            try {
>> +                // See comments above.
>> +                urls[i] = new
>> URL(encodeUri(matches[i].toURL().toString()));
>> +            } catch (UnsupportedEncodingException ex) {
>> +                throw new MalformedURLException(ex.toString());
>> +            }
>>          }
>>          return urls;
>>      }
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
>>
>>
>>     
>
>   


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to