[SUREFIRE] refactoring TestProvidingInputStream

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

Branch: refs/heads/master
Commit: d4b495f73c9aadf2e168eae1c64c95d3977e8b18
Parents: a83675e
Author: Tibor17 <tibo...@lycos.com>
Authored: Mon Jul 13 23:48:23 2015 +0200
Committer: Tibor17 <tibo...@lycos.com>
Committed: Thu Jul 23 23:28:10 2015 +0200

----------------------------------------------------------------------
 .../lazytestprovider/TestProvidingInputStream.java           | 8 ++++++++
 1 file changed, 8 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/d4b495f7/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/lazytestprovider/TestProvidingInputStream.java
----------------------------------------------------------------------
diff --git 
a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/lazytestprovider/TestProvidingInputStream.java
 
b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/lazytestprovider/TestProvidingInputStream.java
index fd7d162..c82f554 100644
--- 
a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/lazytestprovider/TestProvidingInputStream.java
+++ 
b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/lazytestprovider/TestProvidingInputStream.java
@@ -86,10 +86,13 @@ public class TestProvidingInputStream
     {
         if ( closed.get() )
         {
+            // help GC to free this object because StreamFeeder Thread cannot 
read it after IOE
+            currentBuffer = null;
             throw new EOFException( "closed unexpectedly" );
         }
         else
         {
+            // isolation of instance variable in Thread stack
             byte[] buffer = currentBuffer;
 
             if ( buffer == null )
@@ -107,6 +110,8 @@ public class TestProvidingInputStream
 
                 if ( closed.get() )
                 {
+                    // help GC to free this object because StreamFeeder Thread 
cannot read it after IOE
+                    currentBuffer = null;
                     throw new EOFException( "closed unexpectedly" );
                 }
 
@@ -114,6 +119,7 @@ public class TestProvidingInputStream
                 if ( currentElement != null )
                 {
                     buffer = encodeStringForForkCommunication( currentElement 
);
+                    // may override NULL from close(), therefore setting 
explicitly to NULL if IOE elsewhere
                     currentBuffer = buffer;
                     currentPos = 0;
                 }
@@ -144,6 +150,8 @@ public class TestProvidingInputStream
         }
         catch ( InterruptedException e )
         {
+            // help GC to free this object because StreamFeeder Thread cannot 
read it after IOE
+            currentBuffer = null;
             throw new IOException( e.getLocalizedMessage() );
         }
     }

Reply via email to