Author: sebb
Date: Mon Jul  2 05:28:18 2007
New Revision: 552482

URL: http://svn.apache.org/viewvc?view=rev&rev=552482
Log:
Bug 40099 - Enable use of object variable in ForEachController

Modified:
    
jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/control/ForeachController.java
    jakarta/jmeter/branches/rel-2-2/xdocs/changes.xml

Modified: 
jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/control/ForeachController.java
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/control/ForeachController.java?view=diff&rev=552482&r1=552481&r2=552482
==============================================================================
--- 
jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/control/ForeachController.java
 (original)
+++ 
jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/control/ForeachController.java
 Mon Jul  2 05:28:18 2007
@@ -22,6 +22,7 @@
 
 import org.apache.jmeter.samplers.Sampler;
 import org.apache.jmeter.threads.JMeterContext;
+import org.apache.jmeter.threads.JMeterVariables;
 import org.apache.jmeter.testelement.property.BooleanProperty;
 import org.apache.jmeter.testelement.property.StringProperty;
 import org.apache.jorphan.logging.LoggingManager;
@@ -70,7 +71,7 @@
        }
 
        private String getSeparator() {
-               return getUseSeparator() ? DEFAULT_SEPARATOR : "";
+               return getUseSeparator() ? DEFAULT_SEPARATOR : "";// $NON-NLS-1$
        }
 
        public void setUseSeparator(boolean b) {
@@ -89,9 +90,13 @@
        public boolean isDone() {
                JMeterContext context = getThreadContext();
                String inputVariable = getInputVal() + getSeparator() + 
(loopCount + 1);
-               if (context.getVariables().get(inputVariable) != null) {
-                       context.getVariables().put(getReturnVal(), 
context.getVariables().get(inputVariable));
-                       log.debug("ForEach resultstring isDone=" + 
context.getVariables().get(getReturnVal()));
+               final JMeterVariables variables = context.getVariables();
+               final Object currentVariable = 
variables.getObject(inputVariable);
+               if (currentVariable != null) {
+                       variables.putObject(getReturnVal(), currentVariable);
+                       if (log.isDebugEnabled()) {
+                               log.debug("ForEach resultstring isDone=" + 
variables.get(getReturnVal()));
+                       }
                        return false;
                }
                return super.isDone();
@@ -100,7 +105,7 @@
        private boolean endOfArguments() {
                JMeterContext context = getThreadContext();
                String inputVariable = getInputVal() + getSeparator() + 
(loopCount + 1);
-               if (context.getVariables().get(inputVariable) != null) {
+               if (context.getVariables().getObject(inputVariable) != null) {
                        log.debug("ForEach resultstring eofArgs= false");
                        return false;
                }
@@ -120,15 +125,17 @@
        /**
         * Check if there are any matching entries
         * 
-        * @return whethere any entries in the list
+        * @return whether any entries in the list
         */
        private boolean emptyList() {
                JMeterContext context = getThreadContext();
                String inputVariable = getInputVal() + getSeparator() + "1";// 
$NON-NLS-1$
-               if (context.getVariables().get(inputVariable) != null) {
+               if (context.getVariables().getObject(inputVariable) != null) {
                        return false;
                }
-               log.debug("No entries found - null first entry: " + 
inputVariable);
+               if (log.isDebugEnabled()) {
+                       log.debug("No entries found - null first entry: " + 
inputVariable);
+               }
                return true;
        }
 

Modified: jakarta/jmeter/branches/rel-2-2/xdocs/changes.xml
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/branches/rel-2-2/xdocs/changes.xml?view=diff&rev=552482&r1=552481&r2=552482
==============================================================================
--- jakarta/jmeter/branches/rel-2-2/xdocs/changes.xml (original)
+++ jakarta/jmeter/branches/rel-2-2/xdocs/changes.xml Mon Jul  2 05:28:18 2007
@@ -181,6 +181,7 @@
 <li>Http Autoredirects are now enabled by default when creating new 
samplers</li>
 <li>Bug 42674 - default to pre-emptive authorisation if not specified</li>
 <li>BSF Sampler passes additional variables to the script</li>
+<li>Bug 40099 - Enable use of object variable in ForEachController</li>
 </ul>
 
 <h4>Non-functional improvements:</h4>



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

Reply via email to