You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jmeter-dev@jakarta.apache.org by se...@apache.org on 2007/12/13 01:09:34 UTC

svn commit: r603781 - /jakarta/jmeter/trunk/src/core/org/apache/jmeter/control/LoopController.java

Author: sebb
Date: Wed Dec 12 16:09:33 2007
New Revision: 603781

URL: http://svn.apache.org/viewvc?rev=603781&view=rev
Log:
Document meaning of forever setting; constructor should not call overridable method

Modified:
    jakarta/jmeter/trunk/src/core/org/apache/jmeter/control/LoopController.java

Modified: jakarta/jmeter/trunk/src/core/org/apache/jmeter/control/LoopController.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/control/LoopController.java?rev=603781&r1=603780&r2=603781&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/core/org/apache/jmeter/control/LoopController.java (original)
+++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/control/LoopController.java Wed Dec 12 16:09:33 2007
@@ -27,26 +27,32 @@
 import org.apache.jmeter.testelement.property.StringProperty;
 
 /**
- * @author Michael Stover
- * @author Thad Smith
- * @version $Revision$
+ * Class that implements the Loop Controller.
  */
 public class LoopController extends GenericController implements Serializable {
 
 	private final static String LOOPS = "LoopController.loops"; // $NON-NLS-1$
+	
+	private static final long serialVersionUID = 232L;
 
 	/*
-	 * TODO: eliminate this setting?
-	 * Most places assume that forever is the same as loopcount = -1 or < 0,
-	 * so having a separate flag is potentially ambiguous.
-	 * In fact, this already happens with ThreadGroup which can set forever = false and loops = -1
+	 * In spite of the name, this is actually used to determine if the loop controller is repeatable.
+	 * 
+	 * The value is only used in nextIsNull() when the loop end condition has been detected:
+	 * If forever==true, then it calls resetLoopCount(), otherwise it calls setDone(true).
+	 * 
+	 * Loop Controllers always set forever=true, so that they will be executed next time
+	 * the parent invokes them.
+	 * 
+	 * Thread Group sets the value false, so nextIsNull() sets done, and the Thread Group will not be repeated.
+	 * However, it's not clear that a Thread Group could ever be repeated.  
 	 */
 	private final static String CONTINUE_FOREVER = "LoopController.continue_forever"; // $NON-NLS-1$
 
 	private transient int loopCount = 0;
 
 	public LoopController() {
-		setContinueForever(true);
+		setContinueForever_private(true);
 	}
 
 	public void setLoops(int loops) {
@@ -77,6 +83,10 @@
 	 *            true if the loop must be reset after ending a run
 	 */
 	public void setContinueForever(boolean forever) {
+		setContinueForever_private(forever);
+	}
+
+	private void setContinueForever_private(boolean forever) {
 		setProperty(new BooleanProperty(CONTINUE_FOREVER, forever));
 	}
 



---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org