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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]