[jboss-cvs] JBossAS SVN: r96046 - projects/demos/microcontainer/trunk/classloader/src/main/java/org/jboss/demos/classloader/policy.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Nov 5 04:09:12 EST 2009
Author: alesj
Date: 2009-11-05 04:09:12 -0500 (Thu, 05 Nov 2009)
New Revision: 96046
Modified:
projects/demos/microcontainer/trunk/classloader/src/main/java/org/jboss/demos/classloader/policy/RegexpClassLoaderPolicy.java
Log:
Simplify regexp fix.
Modified: projects/demos/microcontainer/trunk/classloader/src/main/java/org/jboss/demos/classloader/policy/RegexpClassLoaderPolicy.java
===================================================================
--- projects/demos/microcontainer/trunk/classloader/src/main/java/org/jboss/demos/classloader/policy/RegexpClassLoaderPolicy.java 2009-11-05 08:27:40 UTC (rev 96045)
+++ projects/demos/microcontainer/trunk/classloader/src/main/java/org/jboss/demos/classloader/policy/RegexpClassLoaderPolicy.java 2009-11-05 09:09:12 UTC (rev 96046)
@@ -66,34 +66,31 @@
protected Pattern createPattern(String regexp)
{
- boolean done;
- boolean paren = false;
+ boolean outside = true;
StringBuilder builder = new StringBuilder();
for (int i = 0; i < regexp.length(); i++)
{
- done = false;
-
char ch = regexp.charAt(i);
- if (ch == '[')
- paren = true;
- else if (ch == ']')
- paren = false;
-
- if (ch == '.' && i > 0)
+ if ((ch == '[' || ch == ']' || ch == '.') && escaped(regexp, i) == false)
{
- if (paren == false && regexp.charAt(i - 1) != '\\')
+ switch (ch)
{
- builder.append("\\.");
- done = true;
+ case '[' : outside = false; break;
+ case ']' : outside = true; break;
+ case '.' : if (outside) builder.append("\\"); break;
}
}
- if (done == false)
- builder.append(ch);
+ builder.append(ch);
}
return Pattern.compile(builder.toString());
}
+ protected boolean escaped(String regexp, int i)
+ {
+ return i > 0 && regexp.charAt(i - 1) == '\\';
+ }
+
public URL getResource(String path)
{
Pattern pattern = createPattern(path);
More information about the jboss-cvs-commits
mailing list