Author: markt
Date: Tue Jun 7 14:00:16 2011
New Revision: 1133014
URL: http://svn.apache.org/viewvc?rev=1133014&view=rev
Log:
Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=51324
Improve handling of exceptions when flushing the response buffer to ensure that
the doFlush flag does not get stuck in the enabled state.
Patch provided by Jeremy Norris.
Modified:
tomcat/trunk/java/org/apache/catalina/connector/OutputBuffer.java
tomcat/trunk/webapps/docs/changelog.xml
Modified: tomcat/trunk/java/org/apache/catalina/connector/OutputBuffer.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/OutputBuffer.java?rev=1133014&r1=1133013&r2=1133014&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/connector/OutputBuffer.java (original)
+++ tomcat/trunk/java/org/apache/catalina/connector/OutputBuffer.java Tue Jun
7 14:00:16 2011
@@ -228,6 +228,7 @@ public class OutputBuffer extends Writer
bb.recycle();
closed = false;
+ doFlush = false;
suspended = false;
if (conv!= null) {
@@ -310,15 +311,18 @@ public class OutputBuffer extends Writer
if (suspended)
return;
- doFlush = true;
- if (initial) {
- coyoteResponse.sendHeaders();
- initial = false;
- }
- if (bb.getLength() > 0) {
- bb.flushBuffer();
+ try {
+ doFlush = true;
+ if (initial) {
+ coyoteResponse.sendHeaders();
+ initial = false;
+ }
+ if (bb.getLength() > 0) {
+ bb.flushBuffer();
+ }
+ } finally {
+ doFlush = false;
}
- doFlush = false;
if (realFlush) {
coyoteResponse.action(ActionCode.CLIENT_FLUSH,
Modified: tomcat/trunk/webapps/docs/changelog.xml
URL:
http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1133014&r1=1133013&r2=1133014&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/trunk/webapps/docs/changelog.xml Tue Jun 7 14:00:16 2011
@@ -43,6 +43,15 @@
Other
-->
<section name="Tomcat 7.0.16 (markt)">
+ <subsection name="Catalina">
+ <changelog>
+ <fix>
+ <bug>51324</bug>: Improve handling of exceptions when flushing the
+ response buffer to ensure that the doFlush flag does not get stuck in
+ the enabled state. Patch provided by Jeremy Norris. (markt)
+ </fix>
+ </changelog>
+ </subsection>
<subsection name="Coyote">
<changelog>
<fix>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]