sebb        2004/09/21 15:11:12

  Modified:    src/functions/org/apache/jmeter/functions Tag: rel-2_0
                        StringFromFile.java
  Log:
  Bug 30015     StringFromFile - should close file at end of test
  
  Revision  Changes    Path
  No                   revision
  No                   revision
  1.14.2.5  +41 -15    
jakarta-jmeter/src/functions/org/apache/jmeter/functions/StringFromFile.java
  
  Index: StringFromFile.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src/functions/org/apache/jmeter/functions/StringFromFile.java,v
  retrieving revision 1.14.2.4
  retrieving revision 1.14.2.5
  diff -u -r1.14.2.4 -r1.14.2.5
  --- StringFromFile.java       18 Sep 2004 15:49:58 -0000      1.14.2.4
  +++ StringFromFile.java       21 Sep 2004 22:11:12 -0000      1.14.2.5
  @@ -27,9 +27,11 @@
   import java.util.LinkedList;
   import java.util.List;
   
  +import org.apache.jmeter.engine.event.LoopIterationEvent;
   import org.apache.jmeter.engine.util.CompoundVariable;
   import org.apache.jmeter.samplers.SampleResult;
   import org.apache.jmeter.samplers.Sampler;
  +import org.apache.jmeter.testelement.TestListener;
   import org.apache.jmeter.threads.JMeterVariables;
   import org.apache.jmeter.util.JMeterUtils;
   import org.apache.jorphan.logging.LoggingManager;
  @@ -58,7 +60,9 @@
    * 
    * @version $Revision$ Updated on: $Date$
    */
  -public class StringFromFile extends AbstractFunction implements Serializable
  +public class StringFromFile 
  +    extends AbstractFunction 
  +     implements Serializable, TestListener
   {
        private static Logger log = LoggingManager.getLoggerForClass();
   
  @@ -80,13 +84,13 @@
        private static final int PARAM_END = 4;
        private static final int MAX_PARAM_COUNT = 4;
   
  -    private String myValue = ERR_IND;
  -    private String myName = "StringFromFile_";//$NON-NLS-1$ - Name to store the 
value in
  -    private Object[] values;
  -     transient private BufferedReader myBread; // Buffered reader
  +    transient private String myValue = ERR_IND;
  +    transient private String myName = "StringFromFile_";//$NON-NLS-1$ - Name to 
store the value in
  +    transient private Object[] values;
  +     transient private BufferedReader myBread = null; // Buffered reader
        transient private FileReader fis; // keep this round to close it
  -    private boolean firstTime = false; // should we try to open the file?
  -    private String fileName; // needed for error messages
  +    transient private boolean firstTime = false; // should we try to open the file?
  +    transient private String fileName; // needed for error messages
   
       public StringFromFile()
       {
  @@ -107,12 +111,8 @@
           return newReader;
       }
       
  -/*
  - * Warning: the file will generally be left open at the end of a test run.
  - * This is because functions don't (yet) have any way to find out when a test has
  - * ended ... 
  - */
       private void closeFile(){
  +     if (myBread == null) return;
        String tn = Thread.currentThread().getName();
        log.info(tn + " closing file " + fileName);//$NON-NLS-1$
        try {
  @@ -291,6 +291,8 @@
        * Parameters:
        * - file name
        * - variable name (optional)
  +     * - start index (optional)
  +     * - end index or count (optional)
        * 
        * @see org.apache.jmeter.functions.Function#setParameters(Collection)
        */
  @@ -339,4 +341,28 @@
           return desc;
       }
   
  -}
  +     public void testStarted() 
  +     {
  +             //
  +     }
  +
  +     public void testStarted(String host) 
  +     {
  +             //
  +     }
  +
  +     public void testEnded() 
  +     {
  +             this.testEnded("");
  +     }
  +
  +     public void testEnded(String host) 
  +     {
  +             closeFile();
  +     }
  +
  +     public void testIterationStart(LoopIterationEvent event) 
  +     {
  +             //
  +     }
  +}
  \ No newline at end of file
  
  
  

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

Reply via email to