Author: markt Date: Fri Aug 12 07:46:01 2016 New Revision: 1756087 URL: http://svn.apache.org/viewvc?rev=1756087&view=rev Log: Align ActionCode.AVAILABLE
Modified: tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java tomcat/trunk/java/org/apache/coyote/http2/StreamProcessor.java Modified: tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java?rev=1756087&r1=1756086&r2=1756087&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java Fri Aug 12 07:46:01 2016 @@ -392,11 +392,7 @@ public class AjpProcessor extends Abstra break; } case AVAILABLE: { - if (available()) { - request.setAvailable(1); - } else { - request.setAvailable(0); - } + request.setAvailable(available(Boolean.TRUE.equals(param))); break; } case REQ_SET_BODY_REPLAY: { @@ -669,7 +665,7 @@ public class AjpProcessor extends Abstra @Override protected void dispatchNonBlockingRead() { - if (available()) { + if (available(true) > 0) { super.dispatchNonBlockingRead(); } } @@ -1450,21 +1446,25 @@ public class AjpProcessor extends Abstra } - private boolean available() { + private int available(boolean doRead) { if (endOfStream) { - return false; + return 0; } - if (empty) { + if (empty && doRead) { try { refillReadBuffer(false); } catch (IOException timeout) { // Not ideal. This will indicate that data is available // which should trigger a read which in turn will trigger // another IOException and that one can be thrown. - return true; + return 1; } } - return !empty; + if (empty) { + return 0; + } else { + return bodyBytes.getByteChunk().getLength(); + } } Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java?rev=1756087&r1=1756086&r2=1756087&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java Fri Aug 12 07:46:01 2016 @@ -685,7 +685,7 @@ public class Http11Processor extends Abs break; } case AVAILABLE: { - request.setAvailable(inputBuffer.available(Boolean.TRUE.equals(param))); + request.setAvailable(available(Boolean.TRUE.equals(param))); break; } case REQ_SET_BODY_REPLAY: { @@ -1812,6 +1812,11 @@ public class Http11Processor extends Abs } + private int available(boolean doRead) { + return inputBuffer.available(doRead); + } + + /** * Checks to see if the keep-alive loop should be broken, performing any * processing (e.g. sendfile handling) that may have an impact on whether Modified: tomcat/trunk/java/org/apache/coyote/http2/StreamProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http2/StreamProcessor.java?rev=1756087&r1=1756086&r2=1756087&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/http2/StreamProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/http2/StreamProcessor.java Fri Aug 12 07:46:01 2016 @@ -139,7 +139,7 @@ public class StreamProcessor extends Abs break; } case AVAILABLE: { - request.setAvailable(stream.getInputBuffer().available()); + request.setAvailable(available(Boolean.TRUE.equals(param))); break; } case REQ_SET_BODY_REPLAY: { @@ -400,6 +400,14 @@ public class StreamProcessor extends Abs } + /** + * @param doRead Unused for HTTP/2 + */ + private int available(boolean doRead) { + return stream.getInputBuffer().available(); + } + + @Override public void recycle() { // StreamProcessor instances are not re-used. --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org