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 2017/04/01 12:27:37 UTC

maven-surefire git commit: [SUREFIRE-1349] FreeBSD cross process communication needs to commit stdout data in forked JVM within a synchronized block

Repository: maven-surefire
Updated Branches:
  refs/heads/master da7ff6aa2 -> 67e61b07e


[SUREFIRE-1349] FreeBSD cross process communication needs to commit stdout data in forked JVM within a synchronized block


Project: http://git-wip-us.apache.org/repos/asf/maven-surefire/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven-surefire/commit/67e61b07
Tree: http://git-wip-us.apache.org/repos/asf/maven-surefire/tree/67e61b07
Diff: http://git-wip-us.apache.org/repos/asf/maven-surefire/diff/67e61b07

Branch: refs/heads/master
Commit: 67e61b07e35ce2ade82efc8e69240003b28fd83e
Parents: da7ff6a
Author: Tibor17 <ti...@lycos.com>
Authored: Sat Apr 1 14:27:07 2017 +0200
Committer: Tibor17 <ti...@lycos.com>
Committed: Sat Apr 1 14:27:07 2017 +0200

----------------------------------------------------------------------
 .../maven/plugin/surefire/booterclient/ForkConfiguration.java | 7 +++++--
 .../java/org/apache/maven/surefire/booter/CommandReader.java  | 6 +++++-
 .../org/apache/maven/surefire/booter/ForkingRunListener.java  | 2 ++
 .../java/org/apache/maven/surefire/booter/ForkedBooter.java   | 7 +++++--
 4 files changed, 17 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/67e61b07/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkConfiguration.java
----------------------------------------------------------------------
diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkConfiguration.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkConfiguration.java
index 988af8f..52bc928 100644
--- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkConfiguration.java
+++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkConfiguration.java
@@ -297,13 +297,16 @@ public class ForkConfiguration
             man.getMainAttributes().putValue( "Main-Class", startClassName );
 
             man.write( jos );
+
+            jos.closeEntry();
+            jos.flush();
+
+            return file;
         }
         finally
         {
             jos.close();
         }
-
-        return file;
     }
 
     public boolean isDebug()

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/67e61b07/surefire-api/src/main/java/org/apache/maven/surefire/booter/CommandReader.java
----------------------------------------------------------------------
diff --git a/surefire-api/src/main/java/org/apache/maven/surefire/booter/CommandReader.java b/surefire-api/src/main/java/org/apache/maven/surefire/booter/CommandReader.java
index fb3ad05..2e80f44 100644
--- a/surefire-api/src/main/java/org/apache/maven/surefire/booter/CommandReader.java
+++ b/surefire-api/src/main/java/org/apache/maven/surefire/booter/CommandReader.java
@@ -342,7 +342,11 @@ public final class CommandReader
         private void requestNextTest()
         {
             byte[] encoded = encodeStringForForkCommunication( ( (char) BOOTERCODE_NEXT_TEST ) + ",0,want more!\n" );
-            originalOutStream.write( encoded, 0, encoded.length );
+            synchronized ( originalOutStream )
+            {
+                originalOutStream.write( encoded, 0, encoded.length );
+                originalOutStream.flush();
+            }
         }
 
         private boolean shouldFinish()

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/67e61b07/surefire-api/src/main/java/org/apache/maven/surefire/booter/ForkingRunListener.java
----------------------------------------------------------------------
diff --git a/surefire-api/src/main/java/org/apache/maven/surefire/booter/ForkingRunListener.java b/surefire-api/src/main/java/org/apache/maven/surefire/booter/ForkingRunListener.java
index 1216502..7856dac 100644
--- a/surefire-api/src/main/java/org/apache/maven/surefire/booter/ForkingRunListener.java
+++ b/surefire-api/src/main/java/org/apache/maven/surefire/booter/ForkingRunListener.java
@@ -206,6 +206,7 @@ public class ForkingRunListener
         synchronized ( target ) // See notes about synchronization/thread safety in class javadoc
         {
             target.write( encodeBytes, 0, encodeBytes.length );
+            target.flush();
             if ( target.checkError() )
             {
                 // We MUST NOT throw any exception from this method; otherwise we are in loop and CPU goes up:
@@ -275,6 +276,7 @@ public class ForkingRunListener
         synchronized ( target ) // See notes about synchronization/thread safety in class javadoc
         {
             target.write( encodeBytes, 0, encodeBytes.length );
+            target.flush();
             if ( target.checkError() )
             {
                 // We MUST NOT throw any exception from this method; otherwise we are in loop and CPU goes up:

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/67e61b07/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 665e2f8..5401abf 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
@@ -158,7 +158,6 @@ public final class ForkedBooter
             }
             // Say bye.
             encodeAndWriteToOutput( ( (char) BOOTERCODE_BYE ) + ",0,BYE!\n", originalOut );
-            originalOut.flush();
             // noinspection CallToSystemExit
             exit( 0, reader );
         }
@@ -240,7 +239,11 @@ public final class ForkedBooter
     private static void encodeAndWriteToOutput( String string, PrintStream out )
     {
         byte[] encodeBytes = encodeStringForForkCommunication( string );
-        out.write( encodeBytes, 0, encodeBytes.length );
+        synchronized ( out )
+        {
+            out.write( encodeBytes, 0, encodeBytes.length );
+            out.flush();
+        }
     }
 
     private static void kill()