You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ti...@apache.org on 2016/10/02 10:33:59 UTC
maven-surefire git commit: [SUREFIRE-1290] Orphan Fork JVMs should be
killed after any previous finished with fatal error
Repository: maven-surefire
Updated Branches:
refs/heads/master b2488b645 -> 33a32d132
[SUREFIRE-1290] Orphan Fork JVMs should be killed after any previous finished with fatal error
Project: http://git-wip-us.apache.org/repos/asf/maven-surefire/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven-surefire/commit/33a32d13
Tree: http://git-wip-us.apache.org/repos/asf/maven-surefire/tree/33a32d13
Diff: http://git-wip-us.apache.org/repos/asf/maven-surefire/diff/33a32d13
Branch: refs/heads/master
Commit: 33a32d132922e3ab22502f95bb42aeecfe1531fb
Parents: b2488b6
Author: Tibor17 <ti...@lycos.com>
Authored: Sun Oct 2 12:33:42 2016 +0200
Committer: Tibor17 <ti...@lycos.com>
Committed: Sun Oct 2 12:33:42 2016 +0200
----------------------------------------------------------------------
.../plugin/surefire/AbstractSurefireMojo.java | 17 ++++++++++++++---
.../plugin/surefire/booterclient/ForkStarter.java | 8 ++++++++
.../surefire/booterclient/output/ForkClient.java | 8 ++++++++
3 files changed, 30 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/33a32d13/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java
----------------------------------------------------------------------
diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java
index 1dd80b2..a3ab13e 100644
--- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java
+++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java
@@ -1048,13 +1048,24 @@ public abstract class AbstractSurefireMojo
}
Properties originalSystemProperties = (Properties) System.getProperties().clone();
+ ForkStarter forkStarter = null;
try
{
- ForkStarter forkStarter =
- createForkStarter( provider, forkConfiguration, classLoaderConfiguration, runOrderParameters,
- getConsoleLogger() );
+ forkStarter = createForkStarter( provider, forkConfiguration, classLoaderConfiguration,
+ runOrderParameters, getConsoleLogger() );
+
return forkStarter.run( effectiveProperties, scanResult );
}
+ catch ( SurefireExecutionException e )
+ {
+ forkStarter.killOrphanForks();
+ throw e;
+ }
+ catch ( SurefireBooterForkException e )
+ {
+ forkStarter.killOrphanForks();
+ throw e;
+ }
finally
{
System.setProperties( originalSystemProperties );
http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/33a32d13/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkStarter.java
----------------------------------------------------------------------
diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkStarter.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkStarter.java
index baea043..57c31b6 100644
--- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkStarter.java
+++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkStarter.java
@@ -237,6 +237,14 @@ public class ForkStarter
}
}
+ public void killOrphanForks()
+ {
+ for ( ForkClient fork : currentForkClients )
+ {
+ fork.kill();
+ }
+ }
+
private RunResult run( SurefireProperties effectiveSystemProperties, Map<String, String> providerProperties )
throws SurefireBooterForkException
{
http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/33a32d13/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/ForkClient.java
----------------------------------------------------------------------
diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/ForkClient.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/ForkClient.java
index be3b09f..d59fdd0 100644
--- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/ForkClient.java
+++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/ForkClient.java
@@ -112,6 +112,14 @@ public class ForkClient
{
}
+ public void kill()
+ {
+ if ( !saidGoodBye )
+ {
+ notifiableTestStream.shutdown( KILL );
+ }
+ }
+
/**
* Called in concurrent Thread.
*/