PR: SUREFIRE-27
URL: http://jira.codehaus.org/browse/SUREFIRE-27
Summary: classloader stuct should be dumped if -X is passed to maven
Reporter: Hiram Chirino
git-svn-id: https://svn.apache.org/repos/asf/maven/surefire/trunk/surefire-booter@365709 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/java/org/apache/maven/surefire/SurefireBooter.java b/src/main/java/org/apache/maven/surefire/SurefireBooter.java
index 67fcc50..d5aebd5 100644
--- a/src/main/java/org/apache/maven/surefire/SurefireBooter.java
+++ b/src/main/java/org/apache/maven/surefire/SurefireBooter.java
@@ -369,6 +369,10 @@
throw new SurefireBooterForkException( "Error while executing forked tests.", e );
}
+ /*
+
+ The standard reporting modules should do this work ... jvz
+
String string = stringWriter.toString();
if ( string != null && string.length() > 0 )
@@ -382,6 +386,7 @@
System.out.println( string );
}
}
+ */
if ( returnCode != 0 )
{
@@ -492,6 +497,8 @@
p.setProperty( "batteryConfig", batteryConfig );
+ p.setProperty( "debug", "" + debug );
+
fos = new FileOutputStream( new File( basedir, SUREFIRE_PROPERTIES ) );
p.store( fos, "surefire properties" );
@@ -620,8 +627,6 @@
ClassLoader classLoader = createForkingClassLoader( basedir );
- // Dumps the classloader stuff
- //logClassLoader(classLoader);
Thread.currentThread().setContextClassLoader( classLoader );
@@ -629,6 +634,12 @@
Properties p = getSurefireProperties( basedir );
+ boolean debug = "true".equals( p.getProperty( "debug", "false" ) );
+ if ( debug )
+ {
+ logClassLoader( classLoader );
+ }
+
String batteryExecutorName = p.getProperty( "batteryExecutorName" );
Class batteryExecutorClass = classLoader.loadClass( batteryExecutorName );
@@ -740,12 +751,18 @@
private static void logClassLoader( ClassLoader classLoader )
{
if ( classLoader.getParent() != null )
+ {
logClassLoader( classLoader.getParent() );
+ }
+
if ( classLoader instanceof URLClassLoader )
{
System.out.println( "ClassLoader: type" + classLoader.getClass() + ", value=" + classLoader );
+
URLClassLoader ucl = (URLClassLoader) classLoader;
+
URL[] u = ucl.getURLs();
+
for ( int i = 0; i < u.length; i++ )
{
System.out.println( " : " + u[i] );
@@ -756,6 +773,5 @@
System.out.println( "ClassLoader: type" + classLoader.getClass() + ", value=" + classLoader );
}
}
-
}