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/06/02 03:29:47 UTC
cvs commit: jakarta-jmeter/src/functions/org/apache/jmeter/functions RegexFunction.java
sebb 2004/06/01 18:29:47
Modified: src/functions/org/apache/jmeter/functions Tag: rel-2_0
RegexFunction.java
Log:
Only fetch variables once
Revision Changes Path
No revision
No revision
1.20.2.3 +11 -12 jakarta-jmeter/src/functions/org/apache/jmeter/functions/RegexFunction.java
Index: RegexFunction.java
===================================================================
RCS file: /home/cvs/jakarta-jmeter/src/functions/org/apache/jmeter/functions/RegexFunction.java,v
retrieving revision 1.20.2.2
retrieving revision 1.20.2.3
diff -u -r1.20.2.2 -r1.20.2.3
--- RegexFunction.java 30 May 2004 00:30:51 -0000 1.20.2.2
+++ RegexFunction.java 2 Jun 2004 01:29:46 -0000 1.20.2.3
@@ -126,7 +126,8 @@
throw new InvalidVariableException(e.getMessage());
}
- getVariables().put(name, defaultValue);
+ JMeterVariables vars = getVariables();//Relatively expensive operation, so do it once
+ vars.put(name, defaultValue);
if (previousResult == null || previousResult.getResponseData() == null)
{
return defaultValue;
@@ -155,7 +156,6 @@
}
finally
{
- JMeterVariables vars = getVariables();
vars.put(name+"_matchNr", ""+collectAllMatches.size());
}
@@ -179,7 +179,7 @@
{
first = false;
}
- value.append(generateResult((MatchResult) it.next(),name, tmplt));
+ value.append(generateResult((MatchResult) it.next(),name, tmplt, vars));
}
return value.toString();
}
@@ -188,7 +188,7 @@
MatchResult result =
(MatchResult) collectAllMatches.get(
rand.nextInt(collectAllMatches.size()));
- return generateResult(result,name, tmplt);
+ return generateResult(result,name, tmplt, vars);
}
else
{
@@ -196,7 +196,7 @@
{
int index = Integer.parseInt(valueIndex) - 1;
MatchResult result = (MatchResult) collectAllMatches.get(index);
- return generateResult(result,name, tmplt);
+ return generateResult(result,name, tmplt, vars);
}
catch (NumberFormatException e)
{
@@ -204,7 +204,7 @@
MatchResult result =
(MatchResult) collectAllMatches.get(
(int) (collectAllMatches.size() * ratio + .5) - 1);
- return generateResult(result,name, tmplt);
+ return generateResult(result,name, tmplt, vars);
}
catch (IndexOutOfBoundsException e)
{
@@ -214,11 +214,10 @@
}
- private void saveGroups(MatchResult result, String namep)
+ private void saveGroups(MatchResult result, String namep, JMeterVariables vars)
{
if (result != null)
{
- JMeterVariables vars = getVariables();
for (int x = 0; x < result.groups(); x++)
{
vars.put(namep + "_g" + x, result.group(x));
@@ -231,9 +230,10 @@
return desc;
}
- private String generateResult(MatchResult match, String namep, Object[] template)
+ private String generateResult(MatchResult match, String namep, Object[] template
+ ,JMeterVariables vars)
{
- saveGroups(match, namep);
+ saveGroups(match, namep, vars);
StringBuffer result = new StringBuffer();
for (int a = 0; a < template.length; a++)
{
@@ -246,7 +246,6 @@
result.append(match.group(((Integer) template[a]).intValue()));
}
}
- JMeterVariables vars = getVariables();
vars.put(namep, result.toString());
return result.toString();
}
---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org