Index: java/org/apache/catalina/connector/OutputBuffer.java
===================================================================
--- java/org/apache/catalina/connector/OutputBuffer.java	(revision 1897)
+++ java/org/apache/catalina/connector/OutputBuffer.java	(revision 1898)
@@ -464,6 +464,10 @@
         outputCharChunk.setChars(buf, off, len);
         while (outputCharChunk.getLength() > 0) { 
             conv.convert(outputCharChunk, bb);
+            if (bb.getLength() == 0) {
+                // Break out of the loop if more chars are needed to produce any output
+                break;
+            }
             if (outputCharChunk.getLength() > 0) {
                 bb.flushBuffer();
             }
