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 2004/09/18 17:49:58 UTC
cvs commit: jakarta-jmeter/src/functions/org/apache/jmeter/functions StringFromFile.java
sebb 2004/09/18 08:49:58
Modified: src/functions/org/apache/jmeter/functions Tag: rel-2_0
StringFromFile.java
Log:
Make start and end optional; remove unnecessary reopenFile variable
Revision Changes Path
No revision
No revision
1.14.2.4 +20 -19 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.3
retrieving revision 1.14.2.4
diff -u -r1.14.2.3 -r1.14.2.4
--- StringFromFile.java 3 Jul 2004 14:02:42 -0000 1.14.2.3
+++ StringFromFile.java 18 Sep 2004 15:49:58 -0000 1.14.2.4
@@ -66,7 +66,7 @@
private static final String KEY = "_StringFromFile";//$NON-NLS-1$
// Function name (only 1 _)
- private static final String ERR_IND = "**ERR**";//$NON-NLS-1$
+ static final String ERR_IND = "**ERR**";//$NON-NLS-1$
static {
desc.add(JMeterUtils.getResString("string_from_file_file_name"));//$NON-NLS-1$
@@ -86,7 +86,6 @@
transient private BufferedReader myBread; // Buffered reader
transient private FileReader fis; // keep this round to close it
private boolean firstTime = false; // should we try to open the file?
- private boolean reopenFile = true; // Set from parameter list one day ...
private String fileName; // needed for error messages
public StringFromFile()
@@ -124,9 +123,10 @@
}
}
- private int myStart = 0;
- private int myCurrent = -1;
- private int myEnd = 0;
+ private static final int COUNT_UNUSED = -2;
+ private int myStart = COUNT_UNUSED;
+ private int myCurrent = COUNT_UNUSED;
+ private int myEnd = COUNT_UNUSED;
private void openFile()
{
@@ -143,11 +143,12 @@
}
catch (NumberFormatException e)
{
- myStart=1;// so "" will give 1
+ myStart=COUNT_UNUSED;// Don't process invalid numbers
}
- // Have we use myCurrent yet?
- if (myCurrent == -1) myCurrent=myStart;
}
+ // Have we used myCurrent yet?
+ // Set to 1 if start number is missing (to allow for end without start)
+ if (myCurrent == COUNT_UNUSED) myCurrent = myStart == COUNT_UNUSED ? 1 : myStart;
if (values.length >= PARAM_END)
{
@@ -158,7 +159,7 @@
}
catch (NumberFormatException e)
{
- myEnd=0;
+ myEnd=COUNT_UNUSED;// Don't process invalid numbers (including "")
}
}
@@ -166,7 +167,7 @@
if (values.length >= PARAM_START)
{
log.info(tn+" Start = "+myStart+" Current = "+myCurrent+" End = "+myEnd);//$NON-NLS-1$
- if (values.length >= PARAM_END){
+ if (myEnd != COUNT_UNUSED){
if (myCurrent > myEnd){
log.info(tn+" No more files to process, "+myCurrent+" > "+myEnd);//$NON-NLS-1$
myBread=null;
@@ -179,9 +180,9 @@
* up the file name.
*
*/
- if (start.length()>0) // Only try to format if there is a number
+ if (myStart != COUNT_UNUSED) // Only try to format if there is a number
{
- log.info("Using format "+fileName);
+ log.info(tn + " using format "+fileName);
try {
DecimalFormat myFormatter = new DecimalFormat(fileName);
fileName = myFormatter.format(myCurrent);
@@ -241,17 +242,17 @@
try
{
String line = myBread.readLine();
- if (line == null && reopenFile)
+ if (line == null)
{ // EOF, re-open file
String tn = Thread.currentThread().getName();
- log.info(tn+" Reached EOF on " + fileName);//$NON-NLS-1$
+ log.info(tn+" EOF on file " + fileName);//$NON-NLS-1$
closeFile();
openFile();
if (myBread != null) {
line = myBread.readLine();
} else {
line = ERR_IND;
- if (values.length >= PARAM_END){// Are we processing a file sequence?
+ if (myEnd != COUNT_UNUSED){// Are we processing a file sequence?
log.info(tn + " Detected end of sequence.");
throw new JMeterStopThreadException("End of sequence");
}
@@ -265,7 +266,7 @@
log.error(tn + " error reading file " + e.toString());//$NON-NLS-1$
}
} else { // File was not opened successfully
- if (values.length >= PARAM_END){// Are we processing a file sequence?
+ if (myEnd != COUNT_UNUSED){// Are we processing a file sequence?
String tn = Thread.currentThread().getName();
log.info(tn + " Detected end of sequence.");
throw new JMeterStopThreadException("End of sequence");
@@ -316,7 +317,7 @@
log.info(sb.toString());
- //N.B. seteParameters is called before the test proper is started,
+ //N.B. setParameters is called before the test proper is started,
// and thus variables are not interpreted at this point
// So defer the file open until later to allow variable file names to be used.
firstTime = true;
---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org