Skip to content

Commit 30a6e32

Browse files
authored
Merge pull request #112 from timlueg/2.3-gae
Avoid unnecessary Pattern.compile calls in MemberSelector
2 parents dda4faf + fb80ca9 commit 30a6e32

1 file changed

Lines changed: 3 additions & 2 deletions

File tree

freemarker-core/src/main/java/freemarker/ext/beans/MemberSelectorListMemberAccessPolicy.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import java.util.Collection;
2828
import java.util.List;
2929
import java.util.StringTokenizer;
30+
import java.util.regex.Pattern;
3031

3132
import freemarker.template.utility.ClassUtil;
3233
import freemarker.template.utility.NullArgumentException;
@@ -92,6 +93,7 @@ public final static class MemberSelector {
9293
private final Method method;
9394
private final Constructor<?> constructor;
9495
private final Field field;
96+
private static final Pattern patternCleanStr = Pattern.compile("\\s*([\\.,\\(\\)\\[\\]])\\s*");
9597

9698
/**
9799
* Use if you want to match methods similar to the specified one, in types that are {@code instanceof} of
@@ -193,8 +195,7 @@ public static MemberSelector parse(String memberSelectorString, ClassLoader clas
193195
"Malformed whitelist entry (shouldn't contain \"<\", \">\", \"...\", or \";\"): "
194196
+ memberSelectorString);
195197
}
196-
String cleanedStr = memberSelectorString.trim().replaceAll("\\s*([\\.,\\(\\)\\[\\]])\\s*", "$1");
197-
198+
String cleanedStr = patternCleanStr.matcher(memberSelectorString.trim()).replaceAll("$1");
198199
int postMemberNameIdx;
199200
boolean hasArgList;
200201
{

0 commit comments

Comments
 (0)