You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jmeter.apache.org by pm...@apache.org on 2020/06/06 19:58:11 UTC

[jmeter] branch master updated: Bug 64499 - Exiting JMeter when "jmeterengine.stopfail.system.exit=true" takes too much time if threads are not stopped

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

pmouawad pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/jmeter.git


The following commit(s) were added to refs/heads/master by this push:
     new 0318c50  Bug 64499 - Exiting JMeter when "jmeterengine.stopfail.system.exit=true" takes too much time if threads are not stopped
0318c50 is described below

commit 0318c50a8a55d5be533a9150885e2facf04358a7
Author: pmouawad <p....@ubik-ingenierie.com>
AuthorDate: Sat Jun 6 21:57:52 2020 +0200

    Bug 64499 - Exiting JMeter when "jmeterengine.stopfail.system.exit=true"
    takes too much time if threads are not stopped
---
 .../java/org/apache/jmeter/engine/StandardJMeterEngine.java  |  7 ++++---
 .../src/main/java/org/apache/jmeter/threads/ThreadGroup.java | 12 +++++++++---
 xdocs/changes.xml                                            |  1 +
 3 files changed, 14 insertions(+), 6 deletions(-)

diff --git a/src/core/src/main/java/org/apache/jmeter/engine/StandardJMeterEngine.java b/src/core/src/main/java/org/apache/jmeter/engine/StandardJMeterEngine.java
index 8883f73..62ed775 100644
--- a/src/core/src/main/java/org/apache/jmeter/engine/StandardJMeterEngine.java
+++ b/src/core/src/main/java/org/apache/jmeter/engine/StandardJMeterEngine.java
@@ -289,12 +289,13 @@ public class StandardJMeterEngine implements JMeterEngine, Runnable {
          * @return boolean true if all threads of all Thread Groups stopped
          */
         private boolean verifyThreadsStopped() {
-            boolean stoppedAll = true;
             // ConcurrentHashMap does not need synch. here
             for (AbstractThreadGroup threadGroup : groups) {
-                stoppedAll = stoppedAll && threadGroup.verifyThreadsStopped();
+                if(!threadGroup.verifyThreadsStopped()) {
+                    return false;
+                }
             }
-            return stoppedAll;
+            return true;
         }
 
         /**
diff --git a/src/core/src/main/java/org/apache/jmeter/threads/ThreadGroup.java b/src/core/src/main/java/org/apache/jmeter/threads/ThreadGroup.java
index 5c5f56e..8a376c7 100644
--- a/src/core/src/main/java/org/apache/jmeter/threads/ThreadGroup.java
+++ b/src/core/src/main/java/org/apache/jmeter/threads/ThreadGroup.java
@@ -452,10 +452,16 @@ public class ThreadGroup extends AbstractThreadGroup {
         if (delayedStartup) {
             stoppedAll = verifyThreadStopped(threadStarter);
         }
-        for (Thread t : allThreads.values()) {
-            stoppedAll = stoppedAll && verifyThreadStopped(t);
+        if(stoppedAll) {
+            for (Thread t : allThreads.values()) {
+                if(!verifyThreadStopped(t)) {
+                    return false;
+                }
+            }
+            return true;
+        } else {
+            return false;
         }
-        return stoppedAll;
     }
 
     /**
diff --git a/xdocs/changes.xml b/xdocs/changes.xml
index 6154970..1ea0a7d 100644
--- a/xdocs/changes.xml
+++ b/xdocs/changes.xml
@@ -162,6 +162,7 @@ Summary
 <h3>General</h3>
 <ul>
     <li><bug>64448</bug>User Defined Variable Duplication in Right Click Context Menu</li>
+    <li><bug>64499</bug>Exiting JMeter when <code>jmeterengine.stopfail.system.exit=true</code> takes too much time if threads are not stopped</li>
 </ul>
 
  <!--  =================== Thanks =================== -->