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.moua...@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 =================== -->