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]

Reply via email to