adopted changes
authorfhanik <fhanik@13f79535-47bb-0310-9956-ffa450edef68>
Tue, 29 May 2007 16:46:23 +0000 (16:46 +0000)
committerfhanik <fhanik@13f79535-47bb-0310-9956-ffa450edef68>
Tue, 29 May 2007 16:46:23 +0000 (16:46 +0000)
git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@542586 13f79535-47bb-0310-9956-ffa450edef68

java/org/apache/catalina/connector/CoyoteAdapter.java
java/org/apache/catalina/connector/OutputBuffer.java
java/org/apache/catalina/connector/Request.java
java/org/apache/catalina/connector/Response.java
java/org/apache/coyote/Response.java

index d74672d..2c58582 100644 (file)
@@ -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;
index 4f282a2..c7e98da 100644 (file)
@@ -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
 
index e05ebdf..73efb8e 100644 (file)
@@ -2252,7 +2252,7 @@ public class Request
     /**
      * Return true if bytes are available.
      */
-    public boolean getAvailable() {
+    public boolean isReadable() {
         return (inputBuffer.available() > 0);
     }
 
index 4561d22..acb59c1 100644 (file)
@@ -529,6 +529,14 @@ public class Response
     }
 
 
+    /**
+     * Return true if bytes are available.
+     */
+    public boolean isWriteable() {
+        return (outputBuffer.lastWrite() > 0);
+    }
+
+    
     // ------------------------------------------------ ServletResponse Methods
 
 
index dd3e3b9..7fd2d29 100644 (file)
@@ -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;
     }