Author: aogburn
Date: 2015-04-08 17:56:18 -0400 (Wed, 08 Apr 2015)
New Revision: 2603
Modified:
branches/7.5.x/src/main/java/org/apache/catalina/connector/OutputBuffer.java
branches/7.5.x/src/main/java/org/apache/tomcat/util/buf/ByteChunk.java
Log:
[JBWEB-312] Check if the output buffer can grow before flushing it when using a writer.
Modified: branches/7.5.x/src/main/java/org/apache/catalina/connector/OutputBuffer.java
===================================================================
---
branches/7.5.x/src/main/java/org/apache/catalina/connector/OutputBuffer.java 2015-03-26
20:22:47 UTC (rev 2602)
+++
branches/7.5.x/src/main/java/org/apache/catalina/connector/OutputBuffer.java 2015-04-08
21:56:18 UTC (rev 2603)
@@ -512,7 +512,12 @@
break;
}
if (outputCharChunk.getLength() > 0) {
- bb.flushBuffer();
+ if (bb.getBuffer().length == bb.getEnd() && bb.getLength() <
bb.getLimit()) {
+ // Need to expand output buffer
+ bb.makeSpace(outputCharChunk.getLength());
+ } else {
+ bb.flushBuffer();
+ }
}
}
Modified: branches/7.5.x/src/main/java/org/apache/tomcat/util/buf/ByteChunk.java
===================================================================
--- branches/7.5.x/src/main/java/org/apache/tomcat/util/buf/ByteChunk.java 2015-03-26
20:22:47 UTC (rev 2602)
+++ branches/7.5.x/src/main/java/org/apache/tomcat/util/buf/ByteChunk.java 2015-04-08
21:56:18 UTC (rev 2603)
@@ -451,11 +451,11 @@
end=start;
}
- /** Make space for len chars. If len is small, allocate
- * a reserve space too. Never grow bigger than limit.
+ /**
+ * Make space for len chars. If len is small, allocate a reserve space too.
+ * Never grow bigger than limit.
*/
- private void makeSpace(int count)
- {
+ public void makeSpace(int count) {
byte[] tmp = null;
int newSize;
Show replies by date