From: remm Date: Tue, 27 Jun 2006 13:48:36 +0000 (+0000) Subject: - As redoing the encoders and decoders won't happen immediately, save some memory... X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=eb42770f141dfe4a2a4b526f96f5d58ac19b54c2;p=tomcat7.0 - As redoing the encoders and decoders won't happen immediately, save some memory by cleaning the cache when starting a Comet request (which is supposed to last for a while). git-svn-id: https://svn.apache.org/repos/asf/tomcat/tc6.0.x/trunk@417457 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/java/org/apache/catalina/connector/CoyoteAdapter.java b/java/org/apache/catalina/connector/CoyoteAdapter.java index 737f2e0eb..6c9696b43 100644 --- a/java/org/apache/catalina/connector/CoyoteAdapter.java +++ b/java/org/apache/catalina/connector/CoyoteAdapter.java @@ -241,6 +241,11 @@ public class CoyoteAdapter if (!comet) { request.recycle(); response.recycle(); + } else { + // Clear converters so that the minimum amount of memory + // is used by this processor + request.clearEncoders(); + response.clearEncoders(); } } diff --git a/java/org/apache/catalina/connector/InputBuffer.java b/java/org/apache/catalina/connector/InputBuffer.java index cbc384792..b02c61374 100644 --- a/java/org/apache/catalina/connector/InputBuffer.java +++ b/java/org/apache/catalina/connector/InputBuffer.java @@ -237,6 +237,14 @@ public class InputBuffer extends Reader /** + * Clear cached encoders (to save memory for Comet requests). + */ + public void clearEncoders() { + encoders.clear(); + } + + + /** * Close the input buffer. * * @throws IOException An underlying IOException occurred @@ -494,5 +502,4 @@ public class InputBuffer extends Reader } - } diff --git a/java/org/apache/catalina/connector/OutputBuffer.java b/java/org/apache/catalina/connector/OutputBuffer.java index a18e4b30f..18a1a33b8 100644 --- a/java/org/apache/catalina/connector/OutputBuffer.java +++ b/java/org/apache/catalina/connector/OutputBuffer.java @@ -228,6 +228,14 @@ public class OutputBuffer extends Writer /** + * Clear cached encoders (to save memory for Comet requests). + */ + public void clearEncoders() { + encoders.clear(); + } + + + /** * Close the output buffer. This tries to calculate the response size if * the response has not been committed yet. * diff --git a/java/org/apache/catalina/connector/Request.java b/java/org/apache/catalina/connector/Request.java index d46e66e67..0066c5de2 100644 --- a/java/org/apache/catalina/connector/Request.java +++ b/java/org/apache/catalina/connector/Request.java @@ -357,8 +357,10 @@ public class Request */ protected String localName = null; + // --------------------------------------------------------- Public Methods + /** * Release all object references, and initialize instance variables, in * preparation for reuse of this object. @@ -425,6 +427,14 @@ public class Request } + /** + * Clear cached encoders (to save memory for Comet requests). + */ + public void clearEncoders() { + inputBuffer.clearEncoders(); + } + + // -------------------------------------------------------- Request Methods diff --git a/java/org/apache/catalina/connector/Response.java b/java/org/apache/catalina/connector/Response.java index bab272970..89c9fc1eb 100644 --- a/java/org/apache/catalina/connector/Response.java +++ b/java/org/apache/catalina/connector/Response.java @@ -286,6 +286,14 @@ public class Response } + /** + * Clear cached encoders (to save memory for Comet requests). + */ + public void clearEncoders() { + outputBuffer.clearEncoders(); + } + + // ------------------------------------------------------- Response Methods