sebb        2004/10/05 13:32:25

  Modified:    src/core/org/apache/jmeter/control Tag: rel-2_0
                        IfController.java
  Log:
  Fix bug where first false result disabled controller for rest of test
  [copied fix from HEAD]
  
  Revision  Changes    Path
  No                   revision
  No                   revision
  1.3.2.1   +38 -24    
jakarta-jmeter/src/core/org/apache/jmeter/control/IfController.java
  
  Index: IfController.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/control/IfController.java,v
  retrieving revision 1.3
  retrieving revision 1.3.2.1
  diff -u -r1.3 -r1.3.2.1
  --- IfController.java 14 Feb 2004 03:34:29 -0000      1.3
  +++ IfController.java 5 Oct 2004 20:32:24 -0000       1.3.2.1
  @@ -19,6 +19,8 @@
   package org.apache.jmeter.control;
   
   import java.io.Serializable;
  +
  +import org.apache.jmeter.junit.JMeterTestCase;
   import org.apache.jmeter.samplers.Sampler;
   import org.apache.jmeter.testelement.TestElement;
   import org.apache.jmeter.testelement.property.StringProperty;
  @@ -26,7 +28,6 @@
   import org.apache.log.Logger;
   import org.mozilla.javascript.Context;
   import org.mozilla.javascript.Scriptable;
  -import org.apache.jmeter.junit.JMeterTestCase;
   
   /**
    * 
  @@ -83,7 +84,7 @@
           * Condition Accessor - this is gonna be like     ${count}<10
           */
          public String getCondition() {
  -                     return getPropertyAsString(CONDITION);
  +                     return getPropertyAsString(CONDITION);
          }
   
          /**
  @@ -137,17 +138,18 @@
           * IsDone indicates whether the termination condition is reached.
           * I.e. if the condition evaluates to False - then isDone() returns TRUE
           */
  -       public boolean isDone() {
  -
  -                     boolean result = true;
  -                     try {
  -                               result = !evaluateCondition();
  -                     } catch (Exception e) {
  -                               logger.error(e.getMessage(), e);
  -                     }
  -                     setDone(true);
  -                     return result;
  -       }
  +     public boolean isDone() {
  +//           boolean result = true;
  +//           try {
  +//                     result = !evaluateCondition();
  +//           } catch (Exception e) {
  +//                     logger.error(e.getMessage(), e);
  +//           }
  +//           setDone(true);
  +//           return result;
  +//           setDone(false);
  +             return false;
  +     }
   
          /**
           * @see org.apache.jmeter.control.Controller#next()
  @@ -160,15 +162,27 @@
           *    - if its the first time this is run. The first time is special
           *       cause it is called prior the iteration even starts !
           */
  -       public Sampler next() {
  -                     Sampler currentElement = super.next();
  -
  -                     if (!isDone()) {
  -                               return currentElement;
  -                     } else {
  -                               return null;
  -                     }
  -       }
  +     public Sampler next() 
  +     {
  +             boolean result = false;
  +             try {
  +                     result = evaluateCondition();
  +             }
  +             catch (Exception e)
  +             {
  +                     logger.error(e.getMessage(),e);
  +             }
  +             if (result)
  +                return super.next();
  +             else try
  +             {
  +                return nextIsNull();
  +             }
  +             catch (NextIsNullException e1)
  +             {
  +                return null;
  +             }
  +     }
   
   ////////////////////////////// Start of Test Code ///////////////////////////
   
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to