Author: sebb
Date: Sat Nov 12 18:08:45 2005
New Revision: 332876

URL: http://svn.apache.org/viewcvs?rev=332876&view=rev
Log:
Bug 36898 - apply encoding

Modified:
    
jakarta/jmeter/branches/rel-2-1/src/components/org/apache/jmeter/extractor/RegexExtractor.java

Modified: 
jakarta/jmeter/branches/rel-2-1/src/components/org/apache/jmeter/extractor/RegexExtractor.java
URL: 
http://svn.apache.org/viewcvs/jakarta/jmeter/branches/rel-2-1/src/components/org/apache/jmeter/extractor/RegexExtractor.java?rev=332876&r1=332875&r2=332876&view=diff
==============================================================================
--- 
jakarta/jmeter/branches/rel-2-1/src/components/org/apache/jmeter/extractor/RegexExtractor.java
 (original)
+++ 
jakarta/jmeter/branches/rel-2-1/src/components/org/apache/jmeter/extractor/RegexExtractor.java
 Sat Nov 12 18:08:45 2005
@@ -1,6 +1,5 @@
-// $Header$
 /*
- * Copyright 2003-2004 The Apache Software Foundation.
+ * Copyright 2003-2005 The Apache Software Foundation.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -50,21 +49,26 @@
  * @version $Revision$
  */
 public class RegexExtractor extends AbstractTestElement implements 
PostProcessor, Serializable {
-       transient private static Logger log = 
LoggingManager.getLoggerForClass();
 
-       public static final String USEHEADERS = "RegexExtractor.useHeaders";
+    private static final Logger log = LoggingManager.getLoggerForClass();
 
-       public static final String REGEX = "RegexExtractor.regex";
+       public static final String USEHEADERS = "RegexExtractor.useHeaders"; // 
$NON-NLS-1$
 
-       public static final String REFNAME = "RegexExtractor.refname";
+       public static final String REGEX = "RegexExtractor.regex"; // 
$NON-NLS-1$
 
-       public static final String MATCH_NUMBER = "RegexExtractor.match_number";
+       public static final String REFNAME = "RegexExtractor.refname"; // 
$NON-NLS-1$
 
-       public static final String DEFAULT = "RegexExtractor.default";
+       public static final String MATCH_NUMBER = 
"RegexExtractor.match_number"; // $NON-NLS-1$
 
-       public static final String TEMPLATE = "RegexExtractor.template";
+       public static final String DEFAULT = "RegexExtractor.default"; // 
$NON-NLS-1$
 
-       private Object[] template = null;
+       public static final String TEMPLATE = "RegexExtractor.template"; // 
$NON-NLS-1$
+
+    private static final String REF_MATCH_NR = "_matchNr"; // $NON-NLS-1$
+
+    private static final String UNDERSCORE = "_";  // $NON-NLS-1$
+
+    private Object[] template = null;
 
        private static PatternCacheLRU patternCache = new PatternCacheLRU(1000, 
new Perl5Compiler());
 
@@ -96,8 +100,10 @@
                vars.put(refName, getDefaultValue());
 
                Perl5Matcher matcher = (Perl5Matcher) localMatcher.get();
-               PatternMatcherInput input = new 
PatternMatcherInput(useHeaders() ? context.getPreviousResult()
-                               .getResponseHeaders() : new 
String(context.getPreviousResult().getResponseData()));
+               PatternMatcherInput input = new PatternMatcherInput(
+                useHeaders() 
+                        ? context.getPreviousResult().getResponseHeaders()
+                        : 
context.getPreviousResult().getResponseDataAsString()); // Bug 36898
                log.debug("Regex = " + getRegex());
                try {
                        Pattern pattern = patternCache.getPattern(getRegex(), 
Perl5Compiler.READ_ONLY_MASK);
@@ -125,30 +131,27 @@
                                } else // < 0 means we save all the matches
                                {
                                        int prevCount = 0;
-                                       String prevString = vars.get(refName + 
"_matchNr");
+                                       String prevString = vars.get(refName + 
REF_MATCH_NR);
                                        if (prevString != null) {
                                                try {
                                                        prevCount = 
Integer.parseInt(prevString);
                                                } catch (NumberFormatException 
e1) {
-                                                       // TODO Auto-generated 
catch block
-                                                       e1.printStackTrace();
+                            log.warn("Could not parse "+prevString+" "+e1);
                                                }
                                        }
-                                       vars.put(refName + "_matchNr", "" + 
matches.size());// Save
-                                                                               
                                                                // the
-                                                                               
                                                                // count
+                                       vars.put(refName + REF_MATCH_NR, "" + 
matches.size());// Save the count
                                        for (int i = 1; i <= matches.size(); 
i++) {
                                                match = 
getCorrectMatch(matches, i);
                                                if (match != null) {
-                                                       vars.put(refName + "_" 
+ i, generateResult(match));
-                                                       saveGroups(vars, 
refName + "_" + i, match);
+                                                       vars.put(refName + 
UNDERSCORE + i, generateResult(match));
+                                                       saveGroups(vars, 
refName + UNDERSCORE + i, match);
                                                }
                                        }
                                        for (int i = matches.size() + 1; i <= 
prevCount; i++) {
-                                               vars.remove(refName + "_" + i);
-                                               vars.remove(refName + "_" + i + 
"_g0");// Remove known
-                                                                               
                                                // groups ...
-                                               vars.remove(refName + "_" + i + 
"_g1");// ...
+                                               vars.remove(refName + 
UNDERSCORE + i);
+                        // Remove known groups
+                                               vars.remove(refName + 
UNDERSCORE + i + "_g0"); // $NON-NLS-1$
+                                               vars.remove(refName + 
UNDERSCORE + i + "_g1"); // $NON-NLS-1$
                                                // TODO remove other groups if 
present?
                                        }
                                }
@@ -199,7 +202,8 @@
                List combined = new LinkedList();
                String rawTemplate = getTemplate();
                PatternMatcher matcher = (Perl5Matcher) localMatcher.get();
-               Pattern templatePattern = 
patternCache.getPattern("\\$(\\d+)\\$", Perl5Compiler.READ_ONLY_MASK
+               Pattern templatePattern = 
patternCache.getPattern("\\$(\\d+)\\$"  // $NON-NLS-1$
+                , Perl5Compiler.READ_ONLY_MASK
                                & Perl5Compiler.SINGLELINE_MASK);
                log.debug("Pattern = " + templatePattern);
                log.debug("template = " + rawTemplate);
@@ -234,7 +238,8 @@
 
        private boolean isFirstElementGroup(String rawData) {
                try {
-                       Pattern pattern = 
patternCache.getPattern("^\\$\\d+\\$", Perl5Compiler.READ_ONLY_MASK
+                       Pattern pattern = patternCache.getPattern("^\\$\\d+\\$" 
// $NON-NLS-1$
+                    , Perl5Compiler.READ_ONLY_MASK
                                        & Perl5Compiler.SINGLELINE_MASK);
                        return ((Perl5Matcher) 
localMatcher.get()).contains(rawData, pattern);
                } catch (RuntimeException e) {



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

Reply via email to