From: fhanik Date: Tue, 29 May 2007 16:46:23 +0000 (+0000) Subject: adopted changes X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=95ac36468e45f32e7295f06f6181f07d5e988df6;p=tomcat7.0 adopted changes git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@542586 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/java/org/apache/catalina/connector/CoyoteAdapter.java b/java/org/apache/catalina/connector/CoyoteAdapter.java index d74672d4a..2c58582ee 100644 --- a/java/org/apache/catalina/connector/CoyoteAdapter.java +++ b/java/org/apache/catalina/connector/CoyoteAdapter.java @@ -207,7 +207,7 @@ public class CoyoteAdapter } if (response.isClosed() || !request.isComet()) { res.action(ActionCode.ACTION_COMET_END, null); - } else if (!error && read && request.getAvailable()) { + } else if (!error && read && request.isReadable()) { // If this was a read and not all bytes have been read, or if no data // was read from the connector, then it is an error error = true; @@ -292,7 +292,7 @@ public class CoyoteAdapter if (request.isComet()) { if (!response.isClosed() && !response.isError()) { - if (request.getAvailable()) { + if (request.isReadable()) { // Invoke a read event right away if there are available bytes if (event(req, res, SocketStatus.OPEN_READ)) { comet = true; diff --git a/java/org/apache/catalina/connector/OutputBuffer.java b/java/org/apache/catalina/connector/OutputBuffer.java index 4f282a2f8..c7e98da3c 100644 --- a/java/org/apache/catalina/connector/OutputBuffer.java +++ b/java/org/apache/catalina/connector/OutputBuffer.java @@ -323,6 +323,14 @@ public class OutputBuffer extends Writer } + + /** + * Return the amount of bytes written by the lower layer. + */ + protected int lastWrite() { + return coyoteResponse.getLastWrite(); + } + // ------------------------------------------------- Bytes Handling Methods diff --git a/java/org/apache/catalina/connector/Request.java b/java/org/apache/catalina/connector/Request.java index e05ebdf22..73efb8e00 100644 --- a/java/org/apache/catalina/connector/Request.java +++ b/java/org/apache/catalina/connector/Request.java @@ -2252,7 +2252,7 @@ public class Request /** * Return true if bytes are available. */ - public boolean getAvailable() { + public boolean isReadable() { return (inputBuffer.available() > 0); } diff --git a/java/org/apache/catalina/connector/Response.java b/java/org/apache/catalina/connector/Response.java index 4561d22b5..acb59c100 100644 --- a/java/org/apache/catalina/connector/Response.java +++ b/java/org/apache/catalina/connector/Response.java @@ -529,6 +529,14 @@ public class Response } + /** + * Return true if bytes are available. + */ + public boolean isWriteable() { + return (outputBuffer.lastWrite() > 0); + } + + // ------------------------------------------------ ServletResponse Methods diff --git a/java/org/apache/coyote/Response.java b/java/org/apache/coyote/Response.java index dd3e3b958..7fd2d2933 100644 --- a/java/org/apache/coyote/Response.java +++ b/java/org/apache/coyote/Response.java @@ -124,6 +124,8 @@ public final class Response { protected Request req; + protected int lastWrite = 1; + // ------------------------------------------------------------- Properties public Request getRequest() { @@ -188,6 +190,16 @@ public final class Response { // -------------------- State -------------------- + public int getLastWrite() { + return lastWrite; + } + + + public void setLastWrite(int lastWrite) { + this.lastWrite = lastWrite; + } + + public int getStatus() { return status; } @@ -579,6 +591,7 @@ public final class Response { headers.clear(); // update counters + lastWrite = 1; bytesWritten=0; }