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