You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by kr...@apache.org on 2012/08/13 21:33:35 UTC
svn commit: r1372564 - in /maven/surefire/trunk:
maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/
maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/
surefire-api/src/main/java/org...
Author: krosenvold
Date: Mon Aug 13 19:33:34 2012
New Revision: 1372564
URL: http://svn.apache.org/viewvc?rev=1372564&view=rev
Log:
o An exception in 'the wrong place' could cause plugin to not wait for proper termination of forked process
Modified:
maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkStarter.java
maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/ThreadedStreamConsumer.java
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/suite/RunResult.java
maven/surefire/trunk/surefire-shadefire/pom.xml
Modified: maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkStarter.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkStarter.java?rev=1372564&r1=1372563&r2=1372564&view=diff
==============================================================================
--- maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkStarter.java (original)
+++ maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkStarter.java Mon Aug 13 19:33:34 2012
@@ -103,7 +103,7 @@ public class ForkStarter
fileReporterFactory = new FileReporterFactory( startupReportConfiguration );
}
- public RunResult run(DefaultScanResult scanResult, String requestedForkMode)
+ public RunResult run( DefaultScanResult scanResult, String requestedForkMode )
throws SurefireBooterForkException, SurefireExecutionException
{
final RunResult result;
@@ -227,15 +227,14 @@ public class ForkStarter
{
BooterSerializer booterSerializer = new BooterSerializer( forkConfiguration, properties );
- surefireProperties = booterSerializer.serialize( providerConfiguration, startupConfiguration, testSet);
+ surefireProperties = booterSerializer.serialize( providerConfiguration, startupConfiguration, testSet );
if ( effectiveSystemProperties != null )
{
systPropsFile = SystemPropertyManager.writePropertiesFile( effectiveSystemProperties,
- forkConfiguration.getTempDirectory(),
- "surefire_"
- + systemPropertiesFileCounter++,
- forkConfiguration.isDebug() );
+ forkConfiguration.getTempDirectory(),
+ "surefire_" + systemPropertiesFileCounter++,
+ forkConfiguration.isDebug() );
}
}
catch ( IOException e )
@@ -253,10 +252,10 @@ public class ForkStarter
// Surefire-booter if !useSystemClassLoader
Classpath bootClasspath = Classpath.join( bootClasspathConfiguration, additionlClassPathUrls );
- @SuppressWarnings( "unchecked" )
- Commandline cli = forkConfiguration.createCommandLine( bootClasspath.getClassPath(),
- startupConfiguration.getClassLoaderConfiguration(),
- startupConfiguration.isShadefire() );
+ @SuppressWarnings( "unchecked" ) Commandline cli =
+ forkConfiguration.createCommandLine( bootClasspath.getClassPath(),
+ startupConfiguration.getClassLoaderConfiguration(),
+ startupConfiguration.isShadefire() );
cli.createArg().setFile( surefireProperties );
@@ -272,22 +271,19 @@ public class ForkStarter
System.out.println( "Forking command line: " + cli );
}
- RunResult runResult;
+ RunResult runResult = null;
try
{
final int timeout = forkedProcessTimeoutInSeconds > 0 ? forkedProcessTimeoutInSeconds : 0;
final int result =
CommandLineUtils.executeCommandLine( cli, threadedStreamConsumer, threadedStreamConsumer, timeout );
-
- threadedStreamConsumer.close();
- forkClient.close();
if ( result != RunResult.SUCCESS )
{
throw new SurefireBooterForkException( "Error occurred in starting fork, check output in log" );
}
- runResult = globalRunStatistics.getRunResult();
+
}
catch ( CommandLineTimeOutException e )
{
@@ -295,8 +291,18 @@ public class ForkStarter
}
catch ( CommandLineException e )
{
+ runResult = RunResult.Failure;
throw new SurefireBooterForkException( "Error while executing forked tests.", e.getCause() );
}
+ finally
+ {
+ threadedStreamConsumer.close();
+ forkClient.close();
+ if ( runResult == null )
+ {
+ runResult = globalRunStatistics.getRunResult();
+ }
+ }
return runResult;
}
Modified: maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/ThreadedStreamConsumer.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/ThreadedStreamConsumer.java?rev=1372564&r1=1372563&r2=1372564&view=diff
==============================================================================
--- maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/ThreadedStreamConsumer.java (original)
+++ maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/ThreadedStreamConsumer.java Mon Aug 13 19:33:34 2012
@@ -60,12 +60,12 @@ public class ThreadedStreamConsumer
{
try
{
- String item = (String) queue.take();
+ String item = queue.take();
//noinspection StringEquality
while ( item != poison )
{
target.consumeLine( item );
- item = (String) queue.take();
+ item = queue.take();
}
}
catch ( InterruptedException e )
Modified: maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/suite/RunResult.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/suite/RunResult.java?rev=1372564&r1=1372563&r2=1372564&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/suite/RunResult.java (original)
+++ maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/suite/RunResult.java Mon Aug 13 19:33:34 2012
@@ -48,6 +48,8 @@ public class RunResult
public static final RunResult Timeout = new RunResult( 0, 0, 0, 0, false, true );
+ public static final RunResult Failure = new RunResult( 0, 0, 0, 0, true, false);
+
public RunResult( int completedCount, int errors, int failures, int skipped )
{
this( completedCount, errors, failures, skipped, false, false );
Modified: maven/surefire/trunk/surefire-shadefire/pom.xml
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-shadefire/pom.xml?rev=1372564&r1=1372563&r2=1372564&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-shadefire/pom.xml (original)
+++ maven/surefire/trunk/surefire-shadefire/pom.xml Mon Aug 13 19:33:34 2012
@@ -46,7 +46,6 @@
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-utils</artifactId>
- <version>3.0</version>
</dependency>
<dependency>
<groupId>org.apache.maven.surefire</groupId>