maven-surefire-plugin cannot test custom charset providers specified in 
META-INF/services/java.nio.charset.spi.CharsetProvider
------------------------------------------------------------------------------------------------------------------------------

         Key: MNG-1313
         URL: http://jira.codehaus.org/browse/MNG-1313
     Project: Maven 2
        Type: Bug
  Components: maven-surefire-plugin  
    Versions: 2.0    
 Environment: All
 Reporter: Christian Schulte
    Priority: Blocker


maven-surefire-plugin cannot run a jUnit test for a custom charset provider 
specified in the jar file's 
META-INF/services/java.nio.charset.spi.CharsetProvider file. Class 
java.nio.charset.Charset performs a lookup using 
ClassLoader.getSystemClassLoader(); which does not have the jar file in its 
classpath and thus fails with e.g. junit.framework.AssertionFailedError: 
java.io.UnsupportedEncodingException: DIN_66003 although the jar file itself is 
correct. I think this is due to the plugin using its own classloader and the 
JDK using the system classloader but I may be totally wrong and everything is 
fine with the plugin.

The method from java.nio.charset.Charset performing the lookup beings with

private static Iterator providers() {
        return new Iterator() {

                Class c = java.nio.charset.spi.CharsetProvider.class;
                ClassLoader cl = ClassLoader.getSystemClassLoader();
                Iterator i = Service.providers(c, cl);
                Object next = null;

As it seems org.codehaus.surefire.SurefireBooter does not promote the jar files 
to the classpath of the system classloader.


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


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

Reply via email to