[ 
https://issues.apache.org/jira/browse/IVY-885?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12628404#action_12628404
 ] 

Jim Bonanno commented on IVY-885:
---------------------------------

I backported your changes to the version of ivy we are using and the patch 
works great.

Thanks for fixing this issue so quickly.

> Invalid URL when using dynamic ranges
> -------------------------------------
>
>                 Key: IVY-885
>                 URL: https://issues.apache.org/jira/browse/IVY-885
>             Project: Ivy
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 2.0.0-beta-1
>            Reporter: Jim Bonanno
>            Assignee: Maarten Coene
>             Fix For: 2.0-RC1
>
>
> Sorry to have two url issues in one day. 
> We are using ivy's ranges to resolve our modules. Ivy first tries to see if 
> the specified version exists before listing the repository. The issue that we 
> hit was when using the range [1,2[. The first request is 
> http://myhost/my-repo/org/module/ivys/ivy-[1,2[.xml.
> This URL is not properly escaped, but apache apparently is very forgiving. 
> When we hosted the ivy repository with another web server that validated the 
> urls the returned status code was not a 404.
> We are working around the problem by again using URI to build the URL so it 
> gets properly escaped. There seems to be some tricks to using the URI class. 
> For example, the constructor that takes a string requires the string is 
> already rfc 2396 compliant. The other constructors will actually escape the 
> URL.
> Here is the modifications we made to the BasicURLHandler.
>         if ( url.getProtocol().equals("http") || 
> url.getProtocol().equals("https"))  {
>             try {
>                 URI uri = new URI(url.getProtocol(), null, url.getHost(), 
> url.getPort(), url.getPath(), null, null);
>                 url = uri.toURL();
>             }
>             catch ( URISyntaxException e ) {
>                 IOException ioe = new IOException("Couldn't open connection 
> to '" + url.toString() + "'");
>                 ioe.initCause(e);
>                 throw ioe;
>             }
>         }
>         con = url.openConnection();
> which results in a request 
> http://myhost/my-repo/org/module/ivys/ivy-%5B1,2%5B.xml.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to