You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ba...@apache.org on 2010/06/29 09:37:11 UTC

svn commit: r958854 - in /tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard: lang/jstl/ELEvaluator.java tag/common/fmt/FormatDateSupport.java

Author: bayard
Date: Tue Jun 29 07:37:11 2010
New Revision: 958854

URL: http://svn.apache.org/viewvc?rev=958854&view=rev
Log:
Removing dependency on copied LRUMap class from Commons Collections now that we're 1.5 dependent. Patch courtesy of Jeremy Boynes (#49510)

Modified:
    tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/lang/jstl/ELEvaluator.java
    tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tag/common/fmt/FormatDateSupport.java

Modified: tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/lang/jstl/ELEvaluator.java
URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/lang/jstl/ELEvaluator.java?rev=958854&r1=958853&r2=958854&view=diff
==============================================================================
--- tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/lang/jstl/ELEvaluator.java (original)
+++ tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/lang/jstl/ELEvaluator.java Tue Jun 29 07:37:11 2010
@@ -22,16 +22,15 @@ import java.io.StringReader;
 import java.text.MessageFormat;
 import java.util.Collections;
 import java.util.HashMap;
+import java.util.LinkedHashMap;
 import java.util.Map;
 
 import org.apache.taglibs.standard.lang.jstl.parser.ELParser;
 import org.apache.taglibs.standard.lang.jstl.parser.ParseException;
 import org.apache.taglibs.standard.lang.jstl.parser.Token;
 import org.apache.taglibs.standard.lang.jstl.parser.TokenMgrError;
-import org.apache.taglibs.standard.extra.commons.collections.map.LRUMap;
 
 import javax.servlet.jsp.PageContext;
-import javax.servlet.jsp.jstl.core.Config;
 
 /**
  *
@@ -378,18 +377,25 @@ public class ELEvaluator
         return;
       }
 
+      final int maxSize;
       if( (pageContext != null) && (pageContext.getServletContext() != null) ) {
-
           String value = pageContext.getServletContext().getInitParameter(EXPR_CACHE_PARAM);
           if (value != null) {
-            sCachedExpressionStrings = Collections.synchronizedMap(new LRUMap(Integer.parseInt(value)));
-            return;
+              maxSize = Integer.valueOf(value);
+          } else {
+              maxSize = MAX_SIZE;
           }
-
+      } else {
+          maxSize = MAX_SIZE;
       }
 
       // fall through if it couldn't find the parameter
-      sCachedExpressionStrings = Collections.synchronizedMap(new LRUMap(MAX_SIZE));
+      sCachedExpressionStrings = Collections.synchronizedMap(new LinkedHashMap() {
+          @Override
+          protected boolean removeEldestEntry(Map.Entry eldest) {
+              return size() > maxSize;
+          }
+      });
   }
 
   //-------------------------------------

Modified: tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tag/common/fmt/FormatDateSupport.java
URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tag/common/fmt/FormatDateSupport.java?rev=958854&r1=958853&r2=958854&view=diff
==============================================================================
--- tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tag/common/fmt/FormatDateSupport.java (original)
+++ tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tag/common/fmt/FormatDateSupport.java Tue Jun 29 07:37:11 2010
@@ -20,11 +20,7 @@ package org.apache.taglibs.standard.tag.
 import java.io.IOException;
 import java.text.DateFormat;
 import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.Locale;
-import java.util.TimeZone;
-import java.util.Collections;
-import java.util.Map;
+import java.util.*;
 
 import javax.servlet.jsp.JspException;
 import javax.servlet.jsp.JspTagException;
@@ -34,8 +30,6 @@ import javax.servlet.jsp.tagext.TagSuppo
 import org.apache.taglibs.standard.resources.Resources;
 import org.apache.taglibs.standard.tag.common.core.Util;
 
-import org.apache.taglibs.standard.extra.commons.collections.map.LRUMap;
-
 /**
  * Support for tag handlers for <formatDate>, the date and time
  * formatting tag in JSTL 1.0.
@@ -194,14 +188,16 @@ public abstract class FormatDateSupport 
 	DateFormat formatter = null;
 
 	// lazy initialization of cache
-	if (dateFormatCache == null) {
-		String value = pageContext.getServletContext().getInitParameter(DATE_CACHE_PARAM);
-		if (value != null) {
-			dateFormatCache = Collections.synchronizedMap(new LRUMap(Integer.parseInt(value)));
-		} else {
-			dateFormatCache = Collections.synchronizedMap(new LRUMap(MAX_SIZE));
-		}
-	}
+    if (dateFormatCache == null) {
+        String value = pageContext.getServletContext().getInitParameter(DATE_CACHE_PARAM);
+        final int maxSize = (value != null) ? Integer.parseInt(value) : MAX_SIZE;
+        dateFormatCache = Collections.synchronizedMap(new LinkedHashMap() {
+          @Override
+            protected boolean removeEldestEntry(Map.Entry eldest) {
+            return size() > maxSize;
+            }
+       });
+    }
 
 	// Apply pattern, if present
 	if (pattern != null) {



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org