SurefireBooter can initialize classloader with badly formed URLs
----------------------------------------------------------------
Key: MSUREFIRE-148
URL: http://jira.codehaus.org/browse/MSUREFIRE-148
Project: Maven 2.x Surefire Plugin
Type: Bug
Reporter: Jeremy Boynes
In SurefireBooter.createClassLoader() the path is converted to a URL using
File f = new File( url );
urls.add( f.toURL() );
File.toURL does not perform URL encoding so the resulting URL may contain
invalid characters. This is an issue on Windows machines where the default
maven repository is in "C:\Documents and Settings\user\.m2\..." (the filename
contains spaces). If a test accesses a resource that is loaded from a
dependency jar then the URL returned to that test is malformed.
With JDK 1.4 this can be fixed using
urls.add( f.toURI().toURL() );
as toURI() does encode the path. If surefire still needs to run under pre-1.4
JVMs this would need to be explicitly encoded. I'm willing to supply a patch
for that if wanted.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira