From: markt Date: Tue, 23 Aug 2011 12:19:20 +0000 (+0000) Subject: Pull up finish() so output() is used consistently to wrote closing message X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=6227a12b5dc1c45e3405e5a0cc7020ccbd8b769d;p=tomcat7.0 Pull up finish() so output() is used consistently to wrote closing message git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@1160652 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/java/org/apache/coyote/ajp/AbstractAjpProcessor.java b/java/org/apache/coyote/ajp/AbstractAjpProcessor.java index 0acc719c5..9ed4df0d0 100644 --- a/java/org/apache/coyote/ajp/AbstractAjpProcessor.java +++ b/java/org/apache/coyote/ajp/AbstractAjpProcessor.java @@ -537,7 +537,6 @@ public abstract class AbstractAjpProcessor extends AbstractProcessor { // Methods called by action() protected abstract void actionInternal(ActionCode actionCode, Object param); - protected abstract void finish() throws IOException; // Methods called by prepareResponse() protected abstract void output(byte[] src, int offset, int length) @@ -939,6 +938,35 @@ public abstract class AbstractAjpProcessor extends AbstractProcessor { } + /** + * Finish AJP response. + */ + protected void finish() throws IOException { + + if (!response.isCommitted()) { + // Validate and write response headers + try { + prepareResponse(); + } catch (IOException e) { + // Set error flag + error = true; + } + } + + if (finished) + return; + + finished = true; + + // Add the end message + if (error) { + output(endAndCloseMessageArray, 0, endAndCloseMessageArray.length); + } else { + output(endMessageArray, 0, endMessageArray.length); + } + } + + // ------------------------------------- InputStreamInputBuffer Inner Class diff --git a/java/org/apache/coyote/ajp/AjpAprProcessor.java b/java/org/apache/coyote/ajp/AjpAprProcessor.java index 70c6fb838..7db138a91 100644 --- a/java/org/apache/coyote/ajp/AjpAprProcessor.java +++ b/java/org/apache/coyote/ajp/AjpAprProcessor.java @@ -282,43 +282,6 @@ public class AjpAprProcessor extends AbstractAjpProcessor { /** - * Finish AJP response. - */ - @Override - protected void finish() throws IOException { - - if (!response.isCommitted()) { - // Validate and write response headers - try { - prepareResponse(); - } catch (IOException e) { - // Set error flag - error = true; - } - } - - if (finished) - return; - - finished = true; - - // Add the end message - byte[] messageArray; - if (error) { - messageArray = endAndCloseMessageArray; - } else { - messageArray = endMessageArray; - } - if (outputBuffer.position() + messageArray.length > outputBuffer.capacity()) { - flush(false); - } - outputBuffer.put(messageArray); - flush(false); - - } - - - /** * Read at least the specified amount of bytes, and place them * in the input buffer. */ diff --git a/java/org/apache/coyote/ajp/AjpNioProcessor.java b/java/org/apache/coyote/ajp/AjpNioProcessor.java index 48f1d9b65..de98eb668 100644 --- a/java/org/apache/coyote/ajp/AjpNioProcessor.java +++ b/java/org/apache/coyote/ajp/AjpNioProcessor.java @@ -292,37 +292,6 @@ public class AjpNioProcessor extends AbstractAjpProcessor { writeBuffer.clear(); } - /** - * Finish AJP response. - */ - @Override - protected void finish() throws IOException { - - if (!response.isCommitted()) { - // Validate and write response headers - try { - prepareResponse(); - } catch (IOException e) { - // Set error flag - error = true; - } - } - - if (finished) - return; - - finished = true; - - // Add the end message - byte[] messageArray; - if (error) { - messageArray = endAndCloseMessageArray; - } else { - messageArray = endMessageArray; - } - output(messageArray, 0, messageArray.length); - } - /** * Read the specified amount of bytes, and place them in the input buffer. diff --git a/java/org/apache/coyote/ajp/AjpProcessor.java b/java/org/apache/coyote/ajp/AjpProcessor.java index d47b1eb06..3c69b8300 100644 --- a/java/org/apache/coyote/ajp/AjpProcessor.java +++ b/java/org/apache/coyote/ajp/AjpProcessor.java @@ -287,32 +287,6 @@ public class AjpProcessor extends AbstractAjpProcessor { output.write(src, offset, length); } - /** - * Finish AJP response. - */ - @Override - protected void finish() throws IOException { - - if (!response.isCommitted()) { - // Validate and write response headers - try { - prepareResponse(); - } catch (IOException e) { - // Set error flag - error = true; - } - } - - if (finished) - return; - - finished = true; - - // Add the end message - output.write(error ? endAndCloseMessageArray : endMessageArray); - - } - /** * Read at least the specified amount of bytes, and place them