Author: sebb
Date: Fri Apr  4 11:58:59 2008
New Revision: 644823

URL: http://svn.apache.org/viewvc?rev=644823&view=rev
Log:
Initial fix for Bug 40850 - BeanShell memory leak

Modified:
    
jakarta/jmeter/trunk/src/components/org/apache/jmeter/assertions/BeanShellAssertion.java
    
jakarta/jmeter/trunk/src/components/org/apache/jmeter/assertions/gui/BeanShellAssertionGui.java
    
jakarta/jmeter/trunk/src/components/org/apache/jmeter/extractor/BeanShellPostProcessorResources.properties
    
jakarta/jmeter/trunk/src/components/org/apache/jmeter/modifiers/BeanShellPreProcessorResources.properties
    
jakarta/jmeter/trunk/src/components/org/apache/jmeter/timers/BeanShellTimerResources.properties
    
jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/BeanShellListenerResources.properties
    
jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties
    
jakarta/jmeter/trunk/src/core/org/apache/jmeter/util/BeanShellBeanInfoSupport.java
    
jakarta/jmeter/trunk/src/core/org/apache/jmeter/util/BeanShellInterpreter.java
    
jakarta/jmeter/trunk/src/core/org/apache/jmeter/util/BeanShellTestElement.java
    
jakarta/jmeter/trunk/src/protocol/java/org/apache/jmeter/protocol/java/control/gui/BeanShellSamplerGui.java
    
jakarta/jmeter/trunk/src/protocol/java/org/apache/jmeter/protocol/java/sampler/BeanShellSampler.java

Modified: 
jakarta/jmeter/trunk/src/components/org/apache/jmeter/assertions/BeanShellAssertion.java
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/components/org/apache/jmeter/assertions/BeanShellAssertion.java?rev=644823&r1=644822&r2=644823&view=diff
==============================================================================
--- 
jakarta/jmeter/trunk/src/components/org/apache/jmeter/assertions/BeanShellAssertion.java
 (original)
+++ 
jakarta/jmeter/trunk/src/components/org/apache/jmeter/assertions/BeanShellAssertion.java
 Fri Apr  4 11:58:59 2008
@@ -42,6 +42,8 @@
        public static final String SCRIPT = "BeanShellAssertion.query"; 
//$NON-NLS-1$
 
        public static final String PARAMETERS = 
"BeanShellAssertion.parameters"; //$NON-NLS-1$
+    
+    public static final String RESET_INTREPRETER = 
"BeanShellSampler.resetInterpreter"; //$NON-NLS-1$
 
        // can be specified in jmeter.properties
        public static final String INIT_FILE = "beanshell.assertion.init"; 
//$NON-NLS-1$
@@ -61,6 +63,10 @@
        public String getParameters() {
                return getPropertyAsString(PARAMETERS);
        }
+    
+    public boolean isResetInterpreter() {
+        return getPropertyAsBoolean(RESET_INTREPRETER);
+    }
 
        /*
         * (non-Javadoc)

Modified: 
jakarta/jmeter/trunk/src/components/org/apache/jmeter/assertions/gui/BeanShellAssertionGui.java
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/components/org/apache/jmeter/assertions/gui/BeanShellAssertionGui.java?rev=644823&r1=644822&r2=644823&view=diff
==============================================================================
--- 
jakarta/jmeter/trunk/src/components/org/apache/jmeter/assertions/gui/BeanShellAssertionGui.java
 (original)
+++ 
jakarta/jmeter/trunk/src/components/org/apache/jmeter/assertions/gui/BeanShellAssertionGui.java
 Fri Apr  4 11:58:59 2008
@@ -21,6 +21,7 @@
 import java.awt.BorderLayout;
 
 import javax.swing.Box;
+import javax.swing.JCheckBox;
 import javax.swing.JLabel;
 import javax.swing.JPanel;
 import javax.swing.JScrollPane;
@@ -28,11 +29,15 @@
 import javax.swing.JTextField;
 
 import org.apache.jmeter.assertions.BeanShellAssertion;
+import org.apache.jmeter.protocol.java.sampler.BeanShellSampler;
 import org.apache.jmeter.testelement.TestElement;
+import org.apache.jmeter.testelement.property.BooleanProperty;
 import org.apache.jmeter.util.JMeterUtils;
 
 public class BeanShellAssertionGui extends AbstractAssertionGui {
 
+    private JCheckBox resetInterpreter;// reset the bsh.Interpreter before 
each execution
+
        private JTextField filename;// script file name (if present)
 
        private JTextField parameters;// parameters to pass to script file (or 
script)
@@ -47,6 +52,7 @@
                
scriptField.setText(element.getPropertyAsString(BeanShellAssertion.SCRIPT));
                
filename.setText(element.getPropertyAsString(BeanShellAssertion.FILENAME));
                
parameters.setText(element.getPropertyAsString(BeanShellAssertion.PARAMETERS));
+        
resetInterpreter.setSelected(element.getPropertyAsBoolean(BeanShellSampler.RESET_INTREPRETER));
                super.configure(element);
        }
 
@@ -67,6 +73,7 @@
                te.setProperty(BeanShellAssertion.SCRIPT, 
scriptField.getText());
                te.setProperty(BeanShellAssertion.FILENAME, filename.getText());
                te.setProperty(BeanShellAssertion.PARAMETERS, 
parameters.getText());
+        te.setProperty(new 
BooleanProperty(BeanShellAssertion.RESET_INTREPRETER, 
resetInterpreter.isSelected()));
        }
 
        public String getLabelResource() {
@@ -87,6 +94,15 @@
                return filenamePanel;
        }
 
+    private JPanel createResetPanel() {
+        resetInterpreter = new 
JCheckBox(JMeterUtils.getResString("bsh_script_reset_interpreter")); // 
$NON-NLS-1$
+        resetInterpreter.setName(BeanShellSampler.PARAMETERS);
+
+        JPanel resetInterpreterPanel = new JPanel(new BorderLayout());
+        resetInterpreterPanel.add(resetInterpreter, BorderLayout.WEST);
+        return resetInterpreterPanel;
+       }
+
        private JPanel createParameterPanel() {
                JLabel label = new 
JLabel(JMeterUtils.getResString("bsh_script_parameters")); //$NON-NLS-1$
 
@@ -106,6 +122,7 @@
 
                Box box = Box.createVerticalBox();
                box.add(makeTitlePanel());
+               box.add(createResetPanel());
                box.add(createParameterPanel());
                box.add(createFilenamePanel());
                add(box, BorderLayout.NORTH);
@@ -143,5 +160,6 @@
                filename.setText(""); // $NON-NLS-1$
                parameters.setText(""); // $NON-NLS-1$
                scriptField.setText(""); // $NON-NLS-1$
+        resetInterpreter.setSelected(false);
        }
 }

Modified: 
jakarta/jmeter/trunk/src/components/org/apache/jmeter/extractor/BeanShellPostProcessorResources.properties
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/components/org/apache/jmeter/extractor/BeanShellPostProcessorResources.properties?rev=644823&r1=644822&r2=644823&view=diff
==============================================================================
--- 
jakarta/jmeter/trunk/src/components/org/apache/jmeter/extractor/BeanShellPostProcessorResources.properties
 (original)
+++ 
jakarta/jmeter/trunk/src/components/org/apache/jmeter/extractor/BeanShellPostProcessorResources.properties
 Fri Apr  4 11:58:59 2008
@@ -2,6 +2,8 @@
 scripting.displayName=Script (variables: ctx vars prev data log)
 script.displayName=
 script.shortDescription=Beanshell script
+resetGroup.displayName=Reset bsh.Interpreter before each call
+resetInterpreter.displayName=Reset Interpreter
 parameterGroup.displayName=Parameters to be passed to BeanShell (=> String 
Parameters and String []bsh.args)
 parameters.displayName=Parameters
 parameters.shortDescription=Parameters to be passed to BeanShell (file or 
script)

Modified: 
jakarta/jmeter/trunk/src/components/org/apache/jmeter/modifiers/BeanShellPreProcessorResources.properties
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/components/org/apache/jmeter/modifiers/BeanShellPreProcessorResources.properties?rev=644823&r1=644822&r2=644823&view=diff
==============================================================================
--- 
jakarta/jmeter/trunk/src/components/org/apache/jmeter/modifiers/BeanShellPreProcessorResources.properties
 (original)
+++ 
jakarta/jmeter/trunk/src/components/org/apache/jmeter/modifiers/BeanShellPreProcessorResources.properties
 Fri Apr  4 11:58:59 2008
@@ -2,6 +2,8 @@
 scripting.displayName=Script (variables: ctx vars prev sampler log)
 script.displayName=
 script.shortDescription=Beanshell script
+resetGroup.displayName=Reset bsh.Interpreter before each call
+resetInterpreter.displayName=Reset Interpreter
 parameterGroup.displayName=Parameters to be passed to BeanShell (=> String 
Parameters and String []bsh.args)
 parameters.displayName=Parameters
 parameters.shortDescription=Parameters to be passed to BeanShell (file or 
script)

Modified: 
jakarta/jmeter/trunk/src/components/org/apache/jmeter/timers/BeanShellTimerResources.properties
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/components/org/apache/jmeter/timers/BeanShellTimerResources.properties?rev=644823&r1=644822&r2=644823&view=diff
==============================================================================
--- 
jakarta/jmeter/trunk/src/components/org/apache/jmeter/timers/BeanShellTimerResources.properties
 (original)
+++ 
jakarta/jmeter/trunk/src/components/org/apache/jmeter/timers/BeanShellTimerResources.properties
 Fri Apr  4 11:58:59 2008
@@ -2,6 +2,8 @@
 scripting.displayName=Script (variables: ctx vars log)
 script.displayName=
 script.shortDescription=Beanshell script to generate delay
+resetGroup.displayName=Reset bsh.Interpreter before each call
+resetInterpreter.displayName=Reset Interpreter
 parameterGroup.displayName=Parameters to be passed to BeanShell (=> String 
Parameters and String []bsh.args)
 parameters.displayName=Parameters
 parameters.shortDescription=Parameters to be passed to BeanShell (file or 
script)

Modified: 
jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/BeanShellListenerResources.properties
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/BeanShellListenerResources.properties?rev=644823&r1=644822&r2=644823&view=diff
==============================================================================
--- 
jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/BeanShellListenerResources.properties
 (original)
+++ 
jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/BeanShellListenerResources.properties
 Fri Apr  4 11:58:59 2008
@@ -2,6 +2,8 @@
 scripting.displayName=Script (variables: ctx vars sampleEvent sampleResult log)
 script.displayName=
 script.shortDescription=Beanshell script
+resetGroup.displayName=Reset bsh.Interpreter before each call
+resetInterpreter.displayName=Reset Interpreter
 parameterGroup.displayName=Parameters to be passed to BeanShell (=> String 
Parameters and String []bsh.args)
 parameters.displayName=Parameters
 parameters.shortDescription=Parameters to be passed to BeanShell (file or 
script)

Modified: 
jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties?rev=644823&r1=644822&r2=644823&view=diff
==============================================================================
--- 
jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties 
(original)
+++ 
jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties 
Fri Apr  4 11:58:59 2008
@@ -100,6 +100,7 @@
 bsh_script_variables=The following variables are defined for the 
script:\nSampleResult, ResponseCode, ResponseMessage, IsSuccess, Label, 
FileName, ctx, vars, log
 bsh_script_file=Script file
 bsh_script_parameters=Parameters (-> String Parameters and String []bsh.args)
+bsh_script_reset_interpreter=Reset bsh.Interpreter before each call
 busy_testing=I'm busy testing, please stop the test before changing settings
 cache_session_id=Cache Session Id?
 cancel=Cancel

Modified: 
jakarta/jmeter/trunk/src/core/org/apache/jmeter/util/BeanShellBeanInfoSupport.java
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/util/BeanShellBeanInfoSupport.java?rev=644823&r1=644822&r2=644823&view=diff
==============================================================================
--- 
jakarta/jmeter/trunk/src/core/org/apache/jmeter/util/BeanShellBeanInfoSupport.java
 (original)
+++ 
jakarta/jmeter/trunk/src/core/org/apache/jmeter/util/BeanShellBeanInfoSupport.java
 Fri Apr  4 11:58:59 2008
@@ -32,6 +32,14 @@
                super(beanClass);
                PropertyDescriptor p;
                
+        p = property("resetInterpreter");
+        p.setValue(NOT_UNDEFINED, Boolean.TRUE);
+        p.setValue(DEFAULT, Boolean.FALSE);
+        p.setValue(NOT_EXPRESSION, Boolean.TRUE);
+        p.setValue(NOT_OTHER, Boolean.TRUE);
+        
+        createPropertyGroup("resetGroup", new String[] { "resetInterpreter" });
+               
                p = property("parameters");
                p.setValue(NOT_UNDEFINED, Boolean.TRUE);
                p.setValue(DEFAULT, "");

Modified: 
jakarta/jmeter/trunk/src/core/org/apache/jmeter/util/BeanShellInterpreter.java
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/util/BeanShellInterpreter.java?rev=644823&r1=644822&r2=644823&view=diff
==============================================================================
--- 
jakarta/jmeter/trunk/src/core/org/apache/jmeter/util/BeanShellInterpreter.java 
(original)
+++ 
jakarta/jmeter/trunk/src/core/org/apache/jmeter/util/BeanShellInterpreter.java 
Fri Apr  4 11:58:59 2008
@@ -19,10 +19,9 @@
 package org.apache.jmeter.util;
 
 import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.IOException;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
+
 import org.apache.jorphan.logging.LoggingManager;
 import org.apache.jorphan.util.JMeterError;
 import org.apache.jorphan.util.JMeterException;
@@ -90,29 +89,46 @@
        // This class is not serialised
        private Object bshInstance = null; // The interpreter instance for this 
class
 
+       private final String initFile; // Script file to initialize the 
Interpreter with
+       
+       private final Logger logger; // Logger to use during initialization and 
script run
+       
        public BeanShellInterpreter() throws ClassNotFoundException {
-               if (bshClass == null) {
-                       throw new ClassNotFoundException(BSH_INTERPRETER);
-               }
-               try {
-                       bshInstance = bshClass.newInstance();
-               } catch (InstantiationException e) {
-                       log.error("Can't instantiate BeanShell", e);
-                       throw new ClassNotFoundException("Can't instantiate 
BeanShell", e);
-               } catch (IllegalAccessException e) {
-                       log.error("Can't instantiate BeanShell", e);
-                       throw new ClassNotFoundException("Can't instantiate 
BeanShell", e);
-               }
+               initFile = null;
+               logger = null;
+               init();
        }
 
+    /**
+     * 
+     * @param init initialisation file
+     * @param _log logger to pass to interpreter
+     */
+    public BeanShellInterpreter(String init, Logger _log)  throws 
ClassNotFoundException {
+        initFile = init;
+        logger = _log;
+        init();
+    }
+
        // Called from ctor, so must be private (or final, but it does not seem 
useful elsewhere)
-       private void init(final String initFile, final Object logger) throws 
IOException, JMeterException {
-               if (logger != null) {// Do this before starting the script
+       private void init() throws ClassNotFoundException {
+        if (bshClass == null) {
+            throw new ClassNotFoundException(BSH_INTERPRETER);
+        }
+        try {
+            bshInstance = bshClass.newInstance();
+        } catch (InstantiationException e) {
+            log.error("Can't instantiate BeanShell", e);
+            throw new ClassNotFoundException("Can't instantiate BeanShell", e);
+        } catch (IllegalAccessException e) {
+            log.error("Can't instantiate BeanShell", e);
+            throw new ClassNotFoundException("Can't instantiate BeanShell", e);
+        }
+               if (logger != null) {// Do this before starting the script
                        try {
                                set("log", logger);//$NON-NLS-1$
                        } catch (JMeterException e) {
-                               log.error("Can't set logger variable", e);
-                               throw e;
+                           log.warn("Can't set logger variable", e);
                        }
                }
                if (initFile != null && initFile.length() > 0) {
@@ -125,30 +141,27 @@
                                        +File.separator+initFile;
                                in = new File(fileToUse);
                                if (!in.exists()) {
-                                       throw new 
FileNotFoundException(initFile); // use the original name here
+                                   log.warn("Cannot find init file: 
"+initFile);
                                }
                        }
                        if (!in.canRead()) {
-                               throw new IOException("Cannot read" + 
fileToUse);
+                log.warn("Cannot read init file: "+fileToUse);
                        }
-                       source(fileToUse);
+                       try {
+                source(fileToUse);
+            } catch (JMeterException e) {
+                log.warn("Cannot source init file: "+fileToUse,e);
+            }
                }
        }
 
-    /**
-     * 
-     * @param init initialisation file
-     * @param _log logger to pass to interpreter; also used to log errors in 
this method
-     */
-    public BeanShellInterpreter(String init, Logger _log)  throws 
ClassNotFoundException {
-        this();
-        try {
-            this.init(init, _log);
-        } catch (IOException e) {
-                       _log.warn("Could not initialise interpreter: 
"+e.toString()); // no need for stack trace
-        } catch (JMeterException e) {
-                       _log.warn("Could not initialise interpreter: 
"+e.toString()); // no need for stack trace
-        }
+       /**
+        * Resets the BeanShell interpreter.
+        * 
+        * @throws ClassNotFoundException if interpreter cannot be instantiated
+        */
+    public void reset() throws ClassNotFoundException {
+       init();
     }
 
     private Object bshInvoke(Method m, Object[] o, boolean shouldLog) throws 
JMeterException {

Modified: 
jakarta/jmeter/trunk/src/core/org/apache/jmeter/util/BeanShellTestElement.java
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/util/BeanShellTestElement.java?rev=644823&r1=644822&r2=644823&view=diff
==============================================================================
--- 
jakarta/jmeter/trunk/src/core/org/apache/jmeter/util/BeanShellTestElement.java 
(original)
+++ 
jakarta/jmeter/trunk/src/core/org/apache/jmeter/util/BeanShellTestElement.java 
Fri Apr  4 11:58:59 2008
@@ -44,6 +44,8 @@
        private String filename; // file to source (overrides script)
 
        private String script; // script (if file not provided)
+       
+       private boolean resetInterpreter = false;
        //-- For TestBean implementations only
 
     
@@ -59,6 +61,14 @@
     protected abstract String getInitFileProperty();
 
     protected BeanShellInterpreter getBeanShellInterpreter() {
+        if (isResetInterpreter()) {
+            try {
+                bshInterpreter.reset();
+            } catch (ClassNotFoundException e) {
+                log.error("Cannot find BeanShell: "+e.toString());
+            }
+        }
+
         return bshInterpreter;
     }
 
@@ -203,5 +213,13 @@
 
        public void setFilename(String s) {
                filename = s;
+       }
+       
+       public boolean isResetInterpreter() {
+           return resetInterpreter;
+       }
+       
+       public void setResetInterpreter(boolean b) {
+           resetInterpreter = b;
        }
 }

Modified: 
jakarta/jmeter/trunk/src/protocol/java/org/apache/jmeter/protocol/java/control/gui/BeanShellSamplerGui.java
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/protocol/java/org/apache/jmeter/protocol/java/control/gui/BeanShellSamplerGui.java?rev=644823&r1=644822&r2=644823&view=diff
==============================================================================
--- 
jakarta/jmeter/trunk/src/protocol/java/org/apache/jmeter/protocol/java/control/gui/BeanShellSamplerGui.java
 (original)
+++ 
jakarta/jmeter/trunk/src/protocol/java/org/apache/jmeter/protocol/java/control/gui/BeanShellSamplerGui.java
 Fri Apr  4 11:58:59 2008
@@ -21,6 +21,7 @@
 import java.awt.BorderLayout;
 
 import javax.swing.Box;
+import javax.swing.JCheckBox;
 import javax.swing.JLabel;
 import javax.swing.JPanel;
 import javax.swing.JScrollPane;
@@ -30,9 +31,12 @@
 import org.apache.jmeter.protocol.java.sampler.BeanShellSampler;
 import org.apache.jmeter.samplers.gui.AbstractSamplerGui;
 import org.apache.jmeter.testelement.TestElement;
+import org.apache.jmeter.testelement.property.BooleanProperty;
 import org.apache.jmeter.util.JMeterUtils;
 
 public class BeanShellSamplerGui extends AbstractSamplerGui {
+    
+    private JCheckBox resetInterpreter;// reset the bsh.Interpreter before 
each execution
 
        private JTextField filename;// script file name (if present)
 
@@ -48,6 +52,7 @@
                
scriptField.setText(element.getPropertyAsString(BeanShellSampler.SCRIPT));
                
filename.setText(element.getPropertyAsString(BeanShellSampler.FILENAME));
                
parameters.setText(element.getPropertyAsString(BeanShellSampler.PARAMETERS));
+               
resetInterpreter.setSelected(element.getPropertyAsBoolean(BeanShellSampler.RESET_INTREPRETER));
                super.configure(element);
        }
 
@@ -68,6 +73,7 @@
                te.setProperty(BeanShellSampler.SCRIPT, scriptField.getText());
                te.setProperty(BeanShellSampler.FILENAME, filename.getText());
                te.setProperty(BeanShellSampler.PARAMETERS, 
parameters.getText());
+               te.setProperty(new 
BooleanProperty(BeanShellSampler.RESET_INTREPRETER, 
resetInterpreter.isSelected()));
        }
     
     /**
@@ -79,6 +85,7 @@
         filename.setText(""); //$NON-NLS-1$
         parameters.setText(""); //$NON-NLS-1$
         scriptField.setText(""); //$NON-NLS-1$
+        resetInterpreter.setSelected(false);
     }    
 
        public String getLabelResource() {
@@ -112,12 +119,22 @@
                return parameterPanel;
        }
 
+    private JPanel createResetPanel() {
+        resetInterpreter = new 
JCheckBox(JMeterUtils.getResString("bsh_script_reset_interpreter")); // 
$NON-NLS-1$
+        resetInterpreter.setName(BeanShellSampler.PARAMETERS);
+
+        JPanel resetInterpreterPanel = new JPanel(new BorderLayout());
+        resetInterpreterPanel.add(resetInterpreter, BorderLayout.WEST);
+        return resetInterpreterPanel;
+    }
+
        private void init() {
                setLayout(new BorderLayout(0, 5));
                setBorder(makeBorder());
 
                Box box = Box.createVerticalBox();
                box.add(makeTitlePanel());
+               box.add(createResetPanel());
                box.add(createParameterPanel());
                box.add(createFilenamePanel());
                add(box, BorderLayout.NORTH);

Modified: 
jakarta/jmeter/trunk/src/protocol/java/org/apache/jmeter/protocol/java/sampler/BeanShellSampler.java
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/protocol/java/org/apache/jmeter/protocol/java/sampler/BeanShellSampler.java?rev=644823&r1=644822&r2=644823&view=diff
==============================================================================
--- 
jakarta/jmeter/trunk/src/protocol/java/org/apache/jmeter/protocol/java/sampler/BeanShellSampler.java
 (original)
+++ 
jakarta/jmeter/trunk/src/protocol/java/org/apache/jmeter/protocol/java/sampler/BeanShellSampler.java
 Fri Apr  4 11:58:59 2008
@@ -48,6 +48,8 @@
 
        public static final String INIT_FILE = "beanshell.sampler.init"; 
//$NON-NLS-1$
     
+       public static final String RESET_INTREPRETER = 
"BeanShellSampler.resetInterpreter"; //$NON-NLS-1$
+
     protected String getInitFileProperty() {
         return INIT_FILE;
     }
@@ -73,6 +75,10 @@
        public String getParameters() {
                return getPropertyAsString(PARAMETERS);
        }
+       
+    public boolean isResetInterpreter() {
+        return getPropertyAsBoolean(RESET_INTREPRETER);
+    }
 
        public SampleResult sample(Entry e)// Entry tends to be ignored ...
        {



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

Reply via email to