sebb        2003/10/15 10:53:31

  Modified:    src/components/org/apache/jmeter/extractor
                        RegexExtractor.java
  Log:
  Detect Malformed RE and log a warning message
  
  Revision  Changes    Path
  1.11      +38 -33    
jakarta-jmeter/src/components/org/apache/jmeter/extractor/RegexExtractor.java
  
  Index: RegexExtractor.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src/components/org/apache/jmeter/extractor/RegexExtractor.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- RegexExtractor.java       5 Oct 2003 01:08:40 -0000       1.10
  +++ RegexExtractor.java       15 Oct 2003 17:53:31 -0000      1.11
  @@ -18,6 +18,7 @@
   import org.apache.jmeter.util.JMeterUtils;
   import org.apache.jorphan.logging.LoggingManager;
   import org.apache.log.Logger;
  +import org.apache.oro.text.MalformedCachePatternException;
   import org.apache.oro.text.PatternCacheLRU;
   import org.apache.oro.text.regex.MatchResult;
   import org.apache.oro.text.regex.Pattern;
  @@ -73,38 +74,42 @@
               new PatternMatcherInput(
                   new String(context.getPreviousResult().getResponseData()));
           log.debug("Regex = " + getRegex());
  -        Pattern pattern =
  -            patternCache.getPattern(getRegex(), Perl5Compiler.READ_ONLY_MASK);
  -        List matches = new ArrayList();
  -        int x = 0;
  -        boolean done = false;
  -        do
  -        {
  -            if (matcher.contains(input, pattern))
  -            {
  -                log.debug("RegexExtractor: Match found!");
  -                matches.add(matcher.getMatch());
  -            }
  -            else
  -            {
  -                done = true;
  -            }
  -            x++;
  -        }
  -        while (x != getMatchNumber() && !done);
  -        try
  -        {
  -            MatchResult match = getCorrectMatch(matches);
  -            if (match != null)
  -            {
  -                context.getVariables().put(getRefName(), generateResult(match));
  -                saveGroups(context.getVariables(), getRefName(), match);
  -            }
  -        }
  -        catch (RuntimeException e)
  -        {
  -            log.warn("Error while generating result");
  -        }
  +             try {
  +                     Pattern pattern =
  +                         patternCache.getPattern(getRegex(), 
Perl5Compiler.READ_ONLY_MASK);
  +                     List matches = new ArrayList();
  +                     int x = 0;
  +                     boolean done = false;
  +                     do
  +                     {
  +                         if (matcher.contains(input, pattern))
  +                         {
  +                             log.debug("RegexExtractor: Match found!");
  +                             matches.add(matcher.getMatch());
  +                         }
  +                         else
  +                         {
  +                             done = true;
  +                         }
  +                         x++;
  +                     }
  +                     while (x != getMatchNumber() && !done);
  +                     try
  +                     {
  +                         MatchResult match = getCorrectMatch(matches);
  +                         if (match != null)
  +                         {
  +                             context.getVariables().put(getRefName(), 
generateResult(match));
  +                             saveGroups(context.getVariables(), getRefName(), 
match);
  +                         }
  +                     }
  +                     catch (RuntimeException e)
  +                     {
  +                         log.warn("Error while generating result");
  +                     }
  +             } catch (MalformedCachePatternException e) {
  +                     log.warn("Error in pattern: "+ getRegex());
  +             }
       }
   
       private void saveGroups(
  
  
  

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

Reply via email to