Author: remm
Date: Tue Nov 28 16:30:07 2006
New Revision: 480302
URL: http://svn.apache.org/viewvc?view=rev&rev=480302
Log:
- 41057: Caching large strings uses too much memory and is a bit pointless, so
add an upper bound to the String length.
Modified:
tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/buf/StringCache.java
Modified: tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/buf/StringCache.java
URL:
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/buf/StringCache.java?view=diff&rev=480302&r1=480301&r2=480302
==============================================================================
--- tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/buf/StringCache.java
(original)
+++ tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/buf/StringCache.java Tue
Nov 28 16:30:07 2006
@@ -56,7 +56,11 @@
Integer.parseInt(System.getProperty("tomcat.util.buf.StringCache.cacheSize",
"200"));
- /**
+ protected static int maxStringSize =
+
Integer.parseInt(System.getProperty("tomcat.util.buf.StringCache.maxStringSize",
"128"));
+
+
+ /**
* Statistics hash map for byte chunk.
*/
protected static HashMap bcStats = new HashMap(cacheSize);
@@ -210,7 +214,7 @@
// still training
if (bcCache == null) {
String value = bc.toStringInternal();
- if (byteEnabled) {
+ if (byteEnabled && (value.length() < maxStringSize)) {
// If training, everything is synced
synchronized (bcStats) {
// If the cache has been generated on a previous invocation
@@ -324,7 +328,7 @@
// still training
if (ccCache == null) {
String value = cc.toStringInternal();
- if (charEnabled) {
+ if (charEnabled && (value.length() < maxStringSize)) {
// If training, everything is synced
synchronized (ccStats) {
// If the cache has been generated on a previous invocation
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]