This is an automated email from the ASF dual-hosted git repository.

tibordigana pushed a commit to branch buildfix
in repository https://gitbox.apache.org/repos/asf/maven-surefire.git


The following commit(s) were added to refs/heads/buildfix by this push:
     new 88b80b5  investigating build failure
88b80b5 is described below

commit 88b80b5b4ad0affdf2633271056b95a035dbf99f
Author: tibordigana <[email protected]>
AuthorDate: Thu Jul 18 23:41:49 2019 +0200

    investigating build failure
---
 .../apache/maven/surefire/booter/ForkedBooter.java | 46 +++++++++++++++++-----
 1 file changed, 37 insertions(+), 9 deletions(-)

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 fd5deae..51e3f9a 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
@@ -30,17 +30,19 @@ import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.io.InputStream;
 import java.lang.management.ManagementFactory;
+import java.lang.management.ThreadInfo;
+import java.lang.management.ThreadMXBean;
 import java.lang.reflect.InvocationTargetException;
 import java.security.AccessControlException;
 import java.security.AccessController;
 import java.security.PrivilegedAction;
-import java.util.Date;
 import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.ScheduledThreadPoolExecutor;
 import java.util.concurrent.Semaphore;
 import java.util.concurrent.ThreadFactory;
 import java.util.concurrent.atomic.AtomicBoolean;
 
+import static java.lang.Math.max;
 import static java.lang.Thread.currentThread;
 import static java.util.concurrent.TimeUnit.MILLISECONDS;
 import static java.util.concurrent.TimeUnit.SECONDS;
@@ -62,6 +64,7 @@ public final class ForkedBooter
 {
     private static final long DEFAULT_SYSTEM_EXIT_TIMEOUT_IN_SECONDS = 30L;
     private static final long PING_TIMEOUT_IN_SECONDS = 30L;
+    private static final long ONE_SECOND_IN_MILLIS = 1000L;
     private static final String LAST_DITCH_SHUTDOWN_THREAD = 
"surefire-forkedjvm-last-ditch-daemon-shutdown-thread-";
     private static final String PING_THREAD = "surefire-forkedjvm-ping-";
 
@@ -295,7 +298,7 @@ public final class ForkedBooter
 
     private void acknowledgedExit()
     {
-        /*final Semaphore barrier = new Semaphore( 0 );
+        final Semaphore barrier = new Semaphore( 0 );
         commandReader.addByeAckListener( new CommandListener()
                                           {
                                               @Override
@@ -304,11 +307,11 @@ public final class ForkedBooter
                                                   barrier.release();
                                               }
                                           }
-        );*/
+        );
         eventChannel.bye();
-        /*launchLastDitchDaemonShutdownThread( 0 );
+        launchLastDitchDaemonShutdownThread( 0 );
         long timeoutMillis = max( systemExitTimeoutInSeconds * 
ONE_SECOND_IN_MILLIS, ONE_SECOND_IN_MILLIS );
-        acquireOnePermit( barrier, timeoutMillis );*/
+        acquireOnePermit( barrier, timeoutMillis );
         cancelPingScheduler();
         commandReader.stop();
         System.exit( 0 );
@@ -342,7 +345,7 @@ public final class ForkedBooter
     @SuppressWarnings( "checkstyle:emptyblock" )
     private void launchLastDitchDaemonShutdownThread( final int returnCode )
     {
-        /*getJvmTerminator().schedule( new Runnable()
+        getJvmTerminator().schedule( new Runnable()
                                         {
                                             @Override
                                             public void run()
@@ -350,16 +353,17 @@ public final class ForkedBooter
                                                 kill( returnCode );
                                             }
                                         }, systemExitTimeoutInSeconds, SECONDS
-        );*/
+        );
 
-        createPingScheduler().scheduleAtFixedRate( new Runnable()
+        /*createPingScheduler().scheduleAtFixedRate( new Runnable()
         {
             @Override
             public void run()
             {
                 DumpErrorSingleton.getSingleton().dumpText( new Date() + " I 
am in PING." );
+                kill( returnCode );
             }
-        }, 0L, PING_TIMEOUT_IN_SECONDS, SECONDS );
+        }, 0L, PING_TIMEOUT_IN_SECONDS, SECONDS );*/
     }
 
     private void invokeProviderInSameClassLoader( ForkingReporterFactory 
factory )
@@ -482,4 +486,28 @@ public final class ForkedBooter
             return pingScheduler.isShutdown();
         }
     }
+
+    public static String generateThreadDump()
+    {
+        StringBuilder dump = new StringBuilder();
+        ThreadMXBean threadMXBean = ManagementFactory.getThreadMXBean();
+        ThreadInfo[] threadInfos = threadMXBean.getThreadInfo( 
threadMXBean.getAllThreadIds(), 100 );
+        for ( ThreadInfo threadInfo : threadInfos )
+        {
+            dump.append( '"' );
+            dump.append( threadInfo.getThreadName() );
+            dump.append( "\" " );
+            Thread.State state = threadInfo.getThreadState();
+            dump.append( "\n   java.lang.Thread.State: " );
+            dump.append( state );
+            StackTraceElement[] stackTraceElements = 
threadInfo.getStackTrace();
+            for ( StackTraceElement stackTraceElement : stackTraceElements )
+            {
+                dump.append( "\n        at " );
+                dump.append( stackTraceElement );
+            }
+            dump.append( "\n\n" );
+        }
+        return dump.toString();
+    }
 }

Reply via email to