- As redoing the encoders and decoders won't happen immediately, save some memory...
authorremm <remm@13f79535-47bb-0310-9956-ffa450edef68>
Tue, 27 Jun 2006 13:48:36 +0000 (13:48 +0000)
committerremm <remm@13f79535-47bb-0310-9956-ffa450edef68>
Tue, 27 Jun 2006 13:48:36 +0000 (13:48 +0000)
  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

java/org/apache/catalina/connector/CoyoteAdapter.java
java/org/apache/catalina/connector/InputBuffer.java
java/org/apache/catalina/connector/OutputBuffer.java
java/org/apache/catalina/connector/Request.java
java/org/apache/catalina/connector/Response.java

index 737f2e0..6c9696b 100644 (file)
@@ -241,6 +241,11 @@ public class CoyoteAdapter
             if (!comet) {\r
                 request.recycle();\r
                 response.recycle();\r
+            } else {\r
+                // Clear converters so that the minimum amount of memory \r
+                // is used by this processor\r
+                request.clearEncoders();\r
+                response.clearEncoders();\r
             }\r
         }\r
 \r
index cbc3847..b02c613 100644 (file)
@@ -237,6 +237,14 @@ public class InputBuffer extends Reader
 \r
 \r
     /**\r
+     * Clear cached encoders (to save memory for Comet requests).\r
+     */\r
+    public void clearEncoders() {\r
+        encoders.clear();\r
+    }\r
+    \r
+    \r
+    /**\r
      * Close the input buffer.\r
      * \r
      * @throws IOException An underlying IOException occurred\r
@@ -494,5 +502,4 @@ public class InputBuffer extends Reader
 \r
     }\r
 \r
-\r
 }\r
index a18e4b3..18a1a33 100644 (file)
@@ -228,6 +228,14 @@ public class OutputBuffer extends Writer
 \r
 \r
     /**\r
+     * Clear cached encoders (to save memory for Comet requests).\r
+     */\r
+    public void clearEncoders() {\r
+        encoders.clear();\r
+    }\r
+    \r
+    \r
+    /**\r
      * Close the output buffer. This tries to calculate the response size if \r
      * the response has not been committed yet.\r
      * \r
index d46e66e..0066c5d 100644 (file)
@@ -357,8 +357,10 @@ public class Request
      */\r
     protected String localName = null;\r
 \r
+\r
     // --------------------------------------------------------- Public Methods\r
 \r
+\r
     /**\r
      * Release all object references, and initialize instance variables, in\r
      * preparation for reuse of this object.\r
@@ -425,6 +427,14 @@ public class Request
     }\r
 \r
 \r
+    /**\r
+     * Clear cached encoders (to save memory for Comet requests).\r
+     */\r
+    public void clearEncoders() {\r
+        inputBuffer.clearEncoders();\r
+    }\r
+    \r
+\r
     // -------------------------------------------------------- Request Methods\r
 \r
 \r
index bab2729..89c9fc1 100644 (file)
@@ -286,6 +286,14 @@ public class Response
     }\r
 \r
 \r
+    /**\r
+     * Clear cached encoders (to save memory for Comet requests).\r
+     */\r
+    public void clearEncoders() {\r
+        outputBuffer.clearEncoders();\r
+    }\r
+    \r
+\r
     // ------------------------------------------------------- Response Methods\r
 \r
 \r