[ http://jira.codehaus.org/browse/MSUREFIRE-123?page=comments#action_67639 
] 

Konstantin Pribluda commented on MSUREFIRE-123:
-----------------------------------------------

I found cause of this problem - it's a mix between java.net.URL
and classloading in surefire. 

My findings:
   - URL actually receives system property 
   - URL is loaded by root classloader ( because it is used by SurefireBooter ) 
   - internally java.net.URL does Class.forName() -> this fails, because your 
classes are   
   in IsolatedClassloader -> clasloaded which loaded URL does not know about it
   - as a fallback URL does : ClassLoader.getSystemClassLoader().loadClass() -> 
which also fails for the same 
reason. 

So, there is no chance to get it to work without patching surefirebooter.

Quick workaroung ( ugly hack, but it works ) :
..........................%<---------------
        URL.setURLStreamHandlerFactory( new URLStreamHandlerFactory() {

                        public URLStreamHandler createURLStreamHandler(String 
protocol) {
                                if("memory".equals(protocol)){
                                        return new Handler();
                                }
                                return null;
                        }});
..........................%<---------------

before you try to create URL, in every testcase... ( since it may be forked... 
) 



> unable to establish my own http protocol handler for unit tests
> ---------------------------------------------------------------
>
>          Key: MSUREFIRE-123
>          URL: http://jira.codehaus.org/browse/MSUREFIRE-123
>      Project: Maven 2.x Surefire Plugin
>         Type: Bug

>     Versions: 2.2
>  Environment: jse 5.0 (osx)
>     Reporter: Andy Fyfe
>  Attachments: protocol.zip
>
>
> In order to establish my own http protocol handler, I set the system property 
> java.protocol.handler.pkgs and ensure that the tests require a fork.  The 
> test runs fine under maven 1.0.2, but fails under maven 2.0.4.  I have tried 
> both surefire 2.1.3 and 2.2, and both with the childDelegation option.
> The test sees the system property properly set, but the test's protocol 
> handler is not actually used.
> The attached zip file demonstrates this problem (run "maven test" and "mvn 
> test").

-- 
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

Reply via email to