[Schmitzm-commits] r2013 - trunk/schmitzm-core/src/main/java/de/schmitzm/regex

scm-commit at wald.intevation.org scm-commit at wald.intevation.org
Sat May 26 23:02:17 CEST 2012


Author: alfonx
Date: 2012-05-26 23:02:17 +0200 (Sat, 26 May 2012)
New Revision: 2013

Modified:
   trunk/schmitzm-core/src/main/java/de/schmitzm/regex/RegexCache.java
Log:


Modified: trunk/schmitzm-core/src/main/java/de/schmitzm/regex/RegexCache.java
===================================================================
--- trunk/schmitzm-core/src/main/java/de/schmitzm/regex/RegexCache.java	2012-05-26 20:47:02 UTC (rev 2012)
+++ trunk/schmitzm-core/src/main/java/de/schmitzm/regex/RegexCache.java	2012-05-26 21:02:17 UTC (rev 2013)
@@ -34,7 +34,7 @@
 	 * TODO Ein String der länger ist als die hier angegebene Anzahl Zeichen wir nicht gecached. Die Wahrscheinlichkeit,
 	 * dass der selbe Sting nochmal auftaucht wird als zu gering eingeschätzt.
 	 **/
-	private static final int CACHE_VALUES_TO_RESULT_MAX_VALUE_LENGTH = 200;
+	private static final int CACHE_VALUES_TO_RESULT_MAX_VALUE_LENGTH = 500;
 
 	private static final int CACHE_VALUES_TO_RESULT_SIZE = 500;
 
@@ -70,10 +70,10 @@
 			return false;
 		final String value = object instanceof String ? (String) object : object.toString();
 
-		Matcher m = getMatcher(regex, value);
-		return m.find();
+//		Matcher m = getMatcher(regex, value);
+//		return m.find();
 
-		// return result(regex, value) != null;
+		return result(regex, value) != null;
 	}
 
 	/**
@@ -95,6 +95,8 @@
 
 	final static Map<String, ThreadLocal<Matcher>> matchersCachedThreadLocalPerRegex = new ConcurrentHashMap<String, ThreadLocal<Matcher>>(
 			10000);
+	
+	public static boolean matcherCache = false;
 
 	/**
 	 * Diese Methode ist gedacht um die Erstellung von Matcher-Objekten in der JVM zu reduzieren. Es für bis zu 10000
@@ -104,6 +106,12 @@
 	 * angeforderd, wird zuerst {@link Matcher#reset(CharSequence)} ausgeführt.
 	 */
 	public Matcher getMatcher(final String regex, final String text) {
+		
+		if (!matcherCache) {
+			return getPattern(regex).matcher(text);
+		}
+			
+		
 		ThreadLocal<Matcher> threadLocal = matchersCachedThreadLocalPerRegex.get(regex);
 
 		synchronized (regex) {
@@ -168,6 +176,7 @@
 	 */
 	public final MatchResult result(final String regex, final String value) {
 
+		// Wenn der value-String zu lang ist, dann einfach so machten
 		if (value.length() > CACHE_VALUES_TO_RESULT_MAX_VALUE_LENGTH) {
 			Matcher m = getMatcher(regex, value);
 			boolean found = m.find();



More information about the Schmitzm-commits mailing list