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/07/02 14:28:19 UTC

svn commit: r552482 - in /jakarta/jmeter/branches/rel-2-2: src/components/org/apache/jmeter/control/ForeachController.java xdocs/changes.xml

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: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org