sebb 2003/10/15 10:53:52
Modified: src/protocol/http/org/apache/jmeter/protocol/http/proxy
ProxyControl.java
Log:
Detect Malformed RE and log a warning message
Revision Changes Path
1.28 +38 -27
jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/proxy/ProxyControl.java
Index: ProxyControl.java
===================================================================
RCS file:
/home/cvs/jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/proxy/ProxyControl.java,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -r1.27 -r1.28
--- ProxyControl.java 5 Oct 2003 00:44:02 -0000 1.27
+++ ProxyControl.java 15 Oct 2003 17:53:52 -0000 1.28
@@ -83,6 +83,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.Pattern;
import org.apache.oro.text.regex.Perl5Compiler;
@@ -364,25 +365,30 @@
private boolean checkIncludes(HTTPSampler sampler)
{
boolean ok = false;
+ StringBuffer url = new StringBuffer(sampler.getDomain());
+ url.append(":");
+ url.append(sampler.getPort());
+ url.append(sampler.getPath());
+ if (sampler.getQueryString().length() > 0)
+ {
+ url.append("?");
+ url.append(sampler.getQueryString());
+ }
PropertyIterator iter = getIncludePatterns().iterator();
while (iter.hasNext())
{
String item = iter.next().getStringValue();
- Pattern pattern =
- patternCache.getPattern(
- item,
- Perl5Compiler.READ_ONLY_MASK
- & Perl5Compiler.SINGLELINE_MASK);
- StringBuffer url = new StringBuffer(sampler.getDomain());
- url.append(":");
- url.append(sampler.getPort());
- url.append(sampler.getPath());
- if (sampler.getQueryString().length() > 0)
- {
- url.append("?");
- url.append(sampler.getQueryString());
- }
- ok = matcher.matches(url.toString(), pattern);
+ Pattern pattern;
+ try {
+ pattern =
+ patternCache.getPattern(
+ item,
+ Perl5Compiler.READ_ONLY_MASK
+ & Perl5Compiler.SINGLELINE_MASK);
+ ok = matcher.matches(url.toString(), pattern);
+ } catch (MalformedCachePatternException e) {
+ log.warn("Skipped invalid Include pattern "+item,e);
+ }
if (ok)
{
break;
@@ -394,25 +400,30 @@
private boolean checkExcludes(HTTPSampler sampler)
{
boolean ok = true;
+ StringBuffer url = new StringBuffer(sampler.getDomain());
+ url.append(":");
+ url.append(sampler.getPort());
+ url.append(sampler.getPath());
+ if (sampler.getQueryString().length() > 0)
+ {
+ url.append("?");
+ url.append(sampler.getQueryString());
+ }
PropertyIterator iter = getExcludePatterns().iterator();
while (iter.hasNext())
{
String item = iter.next().getStringValue();
- Pattern pattern =
+ Pattern pattern=null;
+ try {
+ pattern =
patternCache.getPattern(
item,
Perl5Compiler.READ_ONLY_MASK
& Perl5Compiler.SINGLELINE_MASK);
- StringBuffer url = new StringBuffer(sampler.getDomain());
- url.append(":");
- url.append(sampler.getPort());
- url.append(sampler.getPath());
- if (sampler.getQueryString().length() > 0)
- {
- url.append("?");
- url.append(sampler.getQueryString());
- }
- ok = ok && !matcher.matches(url.toString(), pattern);
+ ok = ok && !matcher.matches(url.toString(), pattern);
+ } catch (MalformedCachePatternException e){
+ log.warn("Skipped invalid Exclude pattern: "+item,e);
+ }
if (!ok)
{
return ok;
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]