Author: sebb
Date: Sun Feb  3 09:11:58 2008
New Revision: 618024

URL: http://svn.apache.org/viewvc?rev=618024&view=rev
Log:
Document need to synch execute() and setParameters()

Modified:
    
jakarta/jmeter/trunk/src/core/org/apache/jmeter/functions/AbstractFunction.java

Modified: 
jakarta/jmeter/trunk/src/core/org/apache/jmeter/functions/AbstractFunction.java
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/functions/AbstractFunction.java?rev=618024&r1=618023&r2=618024&view=diff
==============================================================================
--- 
jakarta/jmeter/trunk/src/core/org/apache/jmeter/functions/AbstractFunction.java 
(original)
+++ 
jakarta/jmeter/trunk/src/core/org/apache/jmeter/functions/AbstractFunction.java 
Sun Feb  3 09:11:58 2008
@@ -31,35 +31,44 @@
  */
 public abstract class AbstractFunction implements Function {
 
-       /**
-        * @see Function#execute(SampleResult, Sampler)
-        */
-       abstract public String execute(SampleResult previousResult, Sampler 
currentSampler) throws InvalidVariableException;
-
-       public String execute() throws InvalidVariableException {
-               JMeterContext context = JMeterContextService.getContext();
-               SampleResult previousResult = context.getPreviousResult();
-               Sampler currentSampler = context.getCurrentSampler();
-               return execute(previousResult, currentSampler);
-       }
-
-       /**
-        * @see Function#setParameters(Collection)
-        * <br/>
+    /**
+     * <p><b>
+     * N.B. setParameters() and execute() are called from different threads, 
+     * so both must be synchronized unless there are no parameters to save
+     * </b></p>
+     * @see Function#execute(SampleResult, Sampler)
+     */
+    abstract public String execute(SampleResult previousResult, Sampler 
currentSampler) throws InvalidVariableException;
+
+    public String execute() throws InvalidVariableException {
+        JMeterContext context = JMeterContextService.getContext();
+        SampleResult previousResult = context.getPreviousResult();
+        Sampler currentSampler = context.getCurrentSampler();
+        return execute(previousResult, currentSampler);
+    }
+
+    /**
+     * 
+     * <p><b>
+     * N.B. setParameters() and execute() are called from different threads, 
+     * so both must be synchronized unless there are no parameters to save
+     * </b></p>
+     * 
+     * @see Function#setParameters(Collection)
+     * <br/>
      * Note: This is always called even if no parameters are provided 
      * (versions of JMeter after 2.3.1)
-     * 
-        */
-       abstract public void setParameters(Collection parameters) throws 
InvalidVariableException;
+     */
+    abstract public void setParameters(Collection parameters) throws 
InvalidVariableException;
 
-       /**
-        * @see Function#getReferenceKey()
-        */
-       abstract public String getReferenceKey();
-
-       protected JMeterVariables getVariables() {
-               return JMeterContextService.getContext().getVariables();
-       }
+    /**
+     * @see Function#getReferenceKey()
+     */
+    abstract public String getReferenceKey();
+
+    protected JMeterVariables getVariables() {
+        return JMeterContextService.getContext().getVariables();
+    }
     
     /**
      * Utility method to check parameter counts.
@@ -76,12 +85,12 @@
         int num = parameters.size();
         if ((num > max) || (num < min)) {
             throw new InvalidVariableException(
-                       getReferenceKey() +
+                    getReferenceKey() +
                     " called with wrong number of parameters. Actual: "+num+
                     (
-                       min==max ? 
-                       ". Expected: "+min+"." 
-                       : ". Expected: >= "+min+" and <= "+max
+                        min==max ? 
+                        ". Expected: "+min+"." 
+                        : ". Expected: >= "+min+" and <= "+max
                     )
                     );
         }
@@ -101,7 +110,7 @@
         int num = parameters.size();
         if (num != count) {
             throw new InvalidVariableException(
-                       getReferenceKey() +
+                    getReferenceKey() +
                     " called with wrong number of parameters. Actual: "+num+". 
Expected: "+count+"." 
                    );
         }
@@ -121,7 +130,7 @@
         int num = parameters.size();
         if (num < minimum) {
             throw new InvalidVariableException(
-                       getReferenceKey() +
+                    getReferenceKey() +
                     " called with wrong number of parameters. Actual: "+num+". 
Expected at least: "+minimum+"." 
                    );
         }



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

Reply via email to