[
https://issues.apache.org/jira/browse/WODEN-191?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12553946
]
John Kaputin commented on WODEN-191:
------------------------------------
>From my post to mailing list:
I've checked the history of the SimpleURIResolver code to find out why it
does URL>URI>URL.openStream(). Prior to r522465 (26/3/07), the code did
URL>URI>FileInputStream. However this didn't work when the schema.catalog
was in a jar file so r522465 modified the code to use URL.openStream()
instead of the FileInputStream. The code change was just to convert the
URI back to a URL to call the openStream() method.
So, it looks like the URI no longer necessary - just a leftover from the
FileInputStream approach. My patch removes the URI conversion step and
just calls the openStream() method on the original URL, and this does work
OK when the path contains spaces as in "C:/Program Files/....". Unless
there are any objections I'll go ahead and commit the patch.
> URISyntaxException in SimpleURIResolver when path contains spaces
> -----------------------------------------------------------------
>
> Key: WODEN-191
> URL: https://issues.apache.org/jira/browse/WODEN-191
> Project: Woden
> Issue Type: Bug
> Reporter: John Kaputin
> Assignee: John Kaputin
> Fix For: M8
>
> Attachments: woden191_SimplyURIResolver.txt
>
>
> A Woden user has reported a URISyntaxException error in SimpleURIResolver
> when deploying a WSDL 2.0 application to Tomcat. The stack trace shows this
> is caused by a space in that the path string passed to the URI ctor in
> SimpleURIResolver.loadCatalog. This path string is of the form "C:/Program
> Files/...." - according to RFC2396 the space is an illegal character in a
> URI. It should be escaped to "%20". This path string comes from the URL
> created in the SimpleURIResolver constructor by the ClassLoader.getResource
> method, using the string "META-INF/schema.catalog".
> Original mailing list post with stack trace:
> http://mail-archives.apache.org/mod_mbox/ws-woden-dev/200712.mbox/[EMAIL
> PROTECTED]
> I have tested Woden using the IBM 1.42 and Sun 1.42 JREs and cannot recreate
> the problem. In both cases, the JRE classloader's getResource method does the
> escaping, replacing spaces with %20. It might be that Tomcat is using its own
> classloader with different behaviour (i.e. not escaping spaces).
> Having reviewed the code in SimpleURIResolver, it seems the use of the URI
> class is unnecessary. The code creates a URL as described above, then
> converts it to a URI, then converts it back to a URL and calls the
> openStream() method on the new URL to retrieve the contents of the
> schema.catalog file. We can probably eliminate this type of error by removing
> the URI step and just calling openStream() on the original URL.
> I have tested the openStream() method using a URL file path with spaces and
> then with the spaces escaped and it works correctly in both cases:
> //URL schemaCatalogURL = new URL("file:/C:/Program
> Files/woden/META-INF/schema.catalog");
> URL schemaCatalogURL = new
> URL("file:/C:/Program%20Files/woden/META-INF/schema.catalog");
> Properties catalog = new Properties();
> catalog.load(schemaCatalogURL.openStream());
--
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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]