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 2016/03/14 21:10:09 UTC

svn commit: r1734992 - in /jmeter/trunk: src/core/org/apache/jmeter/threads/JMeterThread.java xdocs/changes.xml

Author: pmouawad
Date: Mon Mar 14 20:10:09 2016
New Revision: 1734992

URL: http://svn.apache.org/viewvc?rev=1734992&view=rev
Log:
Bug 59133 - Regression in custom Thread Group in nightly build before 3.0 (6 march 2016)
#resolve #164
https://github.com/apache/jmeter/pull/164
Bugzilla Id: 59133

Modified:
    jmeter/trunk/src/core/org/apache/jmeter/threads/JMeterThread.java
    jmeter/trunk/xdocs/changes.xml

Modified: jmeter/trunk/src/core/org/apache/jmeter/threads/JMeterThread.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/threads/JMeterThread.java?rev=1734992&r1=1734991&r2=1734992&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/threads/JMeterThread.java (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/threads/JMeterThread.java Mon Mar 14 20:10:09 2016
@@ -235,39 +235,40 @@ public class JMeterThread implements Run
 
         try {
             iterationListener = initRun(threadContext);
-            Sampler sam = threadGroupLoopController.next();
-            while (running && sam != null) {
-                processSampler(sam, null, threadContext);
-                threadContext.cleanAfterSample();
-                
-                // restart of the next loop 
-                // - was request through threadContext
-                // - or the last sample failed AND the onErrorStartNextLoop option is enabled
-                if(threadContext.isRestartNextLoop()
-                        || (onErrorStartNextLoop
-                                && !TRUE.equals(threadContext.getVariables().get(LAST_SAMPLE_OK)))) 
-                {
+            while (running) {
+                Sampler sam = threadGroupLoopController.next();
+                while (running && sam != null) {
+                    processSampler(sam, null, threadContext);
+                    threadContext.cleanAfterSample();
                     
-                    if(log.isDebugEnabled()) {
-                        if(onErrorStartNextLoop
-                                && !threadContext.isRestartNextLoop()) {
-                            log.debug("StartNextLoop option is on, Last sample failed, starting next loop");
+                    // restart of the next loop 
+                    // - was requested through threadContext
+                    // - or the last sample failed AND the onErrorStartNextLoop option is enabled
+                    if(threadContext.isRestartNextLoop()
+                            || (onErrorStartNextLoop
+                                    && !TRUE.equals(threadContext.getVariables().get(LAST_SAMPLE_OK)))) 
+                    {
+                        if(log.isDebugEnabled()) {
+                            if(onErrorStartNextLoop
+                                    && !threadContext.isRestartNextLoop()) {
+                                log.debug("StartNextLoop option is on, Last sample failed, starting next loop");
+                            }
                         }
+                        
+                        triggerEndOfLoopOnParentControllers(sam, threadContext);
+                        sam = null;
+                        threadContext.getVariables().put(LAST_SAMPLE_OK, TRUE);
+                        threadContext.setRestartNextLoop(false);
+                    }
+                    else {
+                        sam = threadGroupLoopController.next();
                     }
-                    
-                    triggerEndOfLoopOnParentControllers(sam, threadContext);
-                    threadContext.getVariables().put(LAST_SAMPLE_OK, TRUE);
-                    threadContext.setRestartNextLoop(false);
-                    sam = null;
                 }
                 
-                if (sam == null && threadGroupLoopController.isDone()) {
+                if (threadGroupLoopController.isDone()) {
                     running = false;
                     log.info("Thread is done: " + threadName);
                 }
-                else {
-                    sam = threadGroupLoopController.next();
-                }
             }
         }
         // Might be found by contoller.next()

Modified: jmeter/trunk/xdocs/changes.xml
URL: http://svn.apache.org/viewvc/jmeter/trunk/xdocs/changes.xml?rev=1734992&r1=1734991&r2=1734992&view=diff
==============================================================================
--- jmeter/trunk/xdocs/changes.xml (original)
+++ jmeter/trunk/xdocs/changes.xml Mon Mar 14 20:10:09 2016
@@ -402,6 +402,7 @@ Summary
     <li><bug>59055</bug>JMeter report generator : When generation is not launched from jmeter/bin folder report-template is not found</li>
     <li><bug>58986</bug>Report/Dashboard reuses the same output directory</li>
     <li><bug>59096</bug>Search Feature : Case insensitive search is not really case insensitive</li>
+    <li><bug>59133</bug>Regression in custom Thread Group in nightly build before 3.0 (6 march 2016). Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
 </ul>
 
  <!--  =================== Thanks =================== -->