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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]