Repository: maven-surefire
Updated Branches:
  refs/heads/master 63657b6e7 -> fac376c5f


[SUREFIRE-1374] std/in stream corrupted 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/fac376c5
Tree: http://git-wip-us.apache.org/repos/asf/maven-surefire/tree/fac376c5
Diff: http://git-wip-us.apache.org/repos/asf/maven-surefire/diff/fac376c5

Branch: refs/heads/master
Commit: fac376c5f7d1b5ca9b2ec220b39b35397d04326a
Parents: 63657b6
Author: Tibor17 <tibordig...@apache.org>
Authored: Fri Jun 2 07:26:35 2017 +0200
Committer: Tibor17 <tibordig...@apache.org>
Committed: Fri Jun 2 07:26:35 2017 +0200

----------------------------------------------------------------------
 .../maven/surefire/booter/ForkedBooter.java     | 20 ++++++++++++--------
 1 file changed, 12 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/fac376c5/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ForkedBooter.java
----------------------------------------------------------------------
diff --git 
a/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ForkedBooter.java
 
b/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ForkedBooter.java
index 8dabaef..1e3863e 100644
--- 
a/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ForkedBooter.java
+++ 
b/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ForkedBooter.java
@@ -76,6 +76,7 @@ public final class ForkedBooter
     private static final long DEFAULT_SYSTEM_EXIT_TIMEOUT_IN_SECONDS = 30;
     private static final long PING_TIMEOUT_IN_SECONDS = 20;
     private static final long ONE_SECOND_IN_MILLIS = 1000;
+    private static final CommandReader COMMAND_READER = 
startupMasterProcessReader();
 
     private static volatile ScheduledThreadPoolExecutor jvmTerminator;
     private static volatile long systemExitTimeoutInSeconds = 
DEFAULT_SYSTEM_EXIT_TIMEOUT_IN_SECONDS;
@@ -88,8 +89,7 @@ public final class ForkedBooter
      */
     public static void main( String... args )
     {
-        final CommandReader reader = startupMasterProcessReader();
-        final ExecutorService pingScheduler = isDebugging() ? null : 
listenToShutdownCommands( reader );
+        final ExecutorService pingScheduler = isDebugging() ? null : 
listenToShutdownCommands();
         final PrintStream originalOut = out;
         try
         {
@@ -159,7 +159,7 @@ public final class ForkedBooter
                 encode( stringBuilder, stackTraceWriter, false );
                 encodeAndWriteToOutput( ( (char) BOOTERCODE_ERROR ) + ",0," + 
stringBuilder + "\n", originalOut );
             }
-            acknowledgedExit( reader, originalOut, pingScheduler );
+            acknowledgedExit( originalOut, pingScheduler );
         }
         catch ( Throwable t )
         {
@@ -202,11 +202,11 @@ public final class ForkedBooter
         return getReader();
     }
 
-    private static ExecutorService listenToShutdownCommands( CommandReader 
reader )
+    private static ExecutorService listenToShutdownCommands()
     {
-        reader.addShutdownListener( createExitHandler() );
+        COMMAND_READER.addShutdownListener( createExitHandler() );
         AtomicBoolean pingDone = new AtomicBoolean( true );
-        reader.addNoopListener( createPingHandler( pingDone ) );
+        COMMAND_READER.addNoopListener( createPingHandler( pingDone ) );
         Runnable pingJob = createPingJob( pingDone );
         ScheduledExecutorService pingScheduler = createPingScheduler();
         pingScheduler.scheduleAtFixedRate( pingJob, 0, 
PING_TIMEOUT_IN_SECONDS, SECONDS );
@@ -275,19 +275,21 @@ public final class ForkedBooter
 
     private static void kill()
     {
+        COMMAND_READER.stop();
         Runtime.getRuntime().halt( 1 );
     }
 
     private static void exit( int returnCode )
     {
         launchLastDitchDaemonShutdownThread( returnCode );
+        COMMAND_READER.stop();
         System.exit( returnCode );
     }
 
-    private static void acknowledgedExit( CommandReader reader, PrintStream 
originalOut, ExecutorService pingScheduler )
+    private static void acknowledgedExit( PrintStream originalOut, 
ExecutorService pingScheduler )
     {
         final Semaphore barrier = new Semaphore( 0 );
-        reader.addByeAckListener( new CommandListener()
+        COMMAND_READER.addByeAckListener( new CommandListener()
                                   {
                                       @Override
                                       public void update( Command command )
@@ -301,6 +303,7 @@ public final class ForkedBooter
         long timeoutMillis = max( systemExitTimeoutInSeconds * 
ONE_SECOND_IN_MILLIS, ONE_SECOND_IN_MILLIS );
         acquireOnePermit( barrier, timeoutMillis );
         cancelPingScheduler( pingScheduler );
+        COMMAND_READER.stop();
         System.exit( 0 );
     }
 
@@ -367,6 +370,7 @@ public final class ForkedBooter
                                             @Override
                                             public void run()
                                             {
+                                                COMMAND_READER.stop();
                                                 Runtime.getRuntime().halt( 
returnCode );
                                             }
                                         }, systemExitTimeoutInSeconds, SECONDS

Reply via email to