Author: markt Date: Thu Oct 11 22:52:30 2012 New Revision: 1397354 URL: http://svn.apache.org/viewvc?rev=1397354&view=rev Log: ServletInputStream.dataAvailable() was removed.
Modified: tomcat/trunk/java/javax/servlet/ServletInputStream.java tomcat/trunk/java/javax/servlet/ServletOutputStream.java tomcat/trunk/java/org/apache/catalina/connector/CoyoteInputStream.java tomcat/trunk/java/org/apache/catalina/connector/InputBuffer.java tomcat/trunk/java/org/apache/catalina/core/AsyncContextImpl.java tomcat/trunk/test/org/apache/catalina/nonblocking/TestNonBlockingAPI.java Modified: tomcat/trunk/java/javax/servlet/ServletInputStream.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/javax/servlet/ServletInputStream.java?rev=1397354&r1=1397353&r2=1397354&view=diff ============================================================================== --- tomcat/trunk/java/javax/servlet/ServletInputStream.java (original) +++ tomcat/trunk/java/javax/servlet/ServletInputStream.java Thu Oct 11 22:52:30 2012 @@ -83,28 +83,21 @@ public abstract class ServletInputStream } /** - * TODO SERVLET 3.1 - * @return TODO - */ - public abstract int dataAvailable(); - - - /** - * TODO SERVLET 3.1 - * @return TODO + * Returns <code>true</code> if all the data has been read from the stream, + * else <code>false</code>. */ public abstract boolean isFinished(); /** - * TODO SERVLET 3.1 - * If this returns false, the container will invoke - * {@link ReadListener#onDataAvailable()} when data is available. - * @return TODO + * Returns <code>true</code> if data can be read without blocking, else + * <code>false</code>. If this method is called and returns false, the + * container will invoke {@link ReadListener#onDataAvailable()} when data is + * available. */ public abstract boolean isReady(); /** - * TODO SERVLET 3.1 + * Sets the {@link ReadListener} for this {@link ServletInputStream}. */ - public abstract void setReadListener(javax.servlet.ReadListener listener); + public abstract void setReadListener(ReadListener listener); } Modified: tomcat/trunk/java/javax/servlet/ServletOutputStream.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/javax/servlet/ServletOutputStream.java?rev=1397354&r1=1397353&r2=1397354&view=diff ============================================================================== --- tomcat/trunk/java/javax/servlet/ServletOutputStream.java (original) +++ tomcat/trunk/java/javax/servlet/ServletOutputStream.java Thu Oct 11 22:52:30 2012 @@ -283,4 +283,5 @@ public abstract class ServletOutputStrea /** * TODO SERVLET 3.1 */ - public abstract void setWriteListener(javax.servlet.WriteListener listener);} + public abstract void setWriteListener(javax.servlet.WriteListener listener); +} Modified: tomcat/trunk/java/org/apache/catalina/connector/CoyoteInputStream.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/CoyoteInputStream.java?rev=1397354&r1=1397353&r2=1397354&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/connector/CoyoteInputStream.java (original) +++ tomcat/trunk/java/org/apache/catalina/connector/CoyoteInputStream.java Thu Oct 11 22:52:30 2012 @@ -247,11 +247,6 @@ public class CoyoteInputStream return ib.isFinished(); } - @Override - public int dataAvailable() { - return ib.dataAvailable(); - } - @Override public boolean isReady() { @@ -266,6 +261,4 @@ public class CoyoteInputStream public void setReadListener(ReadListener listener) { ib.setReadListener(listener); } - - } Modified: tomcat/trunk/java/org/apache/catalina/connector/InputBuffer.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/InputBuffer.java?rev=1397354&r1=1397353&r2=1397354&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/connector/InputBuffer.java (original) +++ tomcat/trunk/java/org/apache/catalina/connector/InputBuffer.java Thu Oct 11 22:52:30 2012 @@ -248,41 +248,28 @@ public class InputBuffer extends Reader return available; } + private volatile ReadListener listener; public void setReadListener(ReadListener listener) { this.listener = listener; coyoteRequest.action(ActionCode.SET_READ_LISTENER, listener); } + public ReadListener getReadListener() { return listener; } - public boolean isFinished() { - return dataAvailable()==0; - } - - public int dataAvailable() { - if (getReadListener()==null) throw new IllegalStateException("not in non blocking mode."); - int result = 0; - //first check if we have buffered something already - result = available(); - - if(result <= 0) { - //here we can issue a non blocking read - //if supported - //TODO SERVLET 3.1 - } - - return result; + public boolean isFinished() { + return available() == 0; } public boolean isReady() { if (getReadListener()==null) throw new IllegalStateException("not in non blocking mode."); - int available = dataAvailable(); - boolean result = available>0; + int available = available(); + boolean result = available > 0; if (!result) { coyoteRequest.action(ActionCode.NB_READ_INTEREST, null); } @@ -290,13 +277,8 @@ public class InputBuffer extends Reader } - - - - // ------------------------------------------------- Bytes Handling Methods - /** * Reads new bytes in the byte chunk. * Modified: tomcat/trunk/java/org/apache/catalina/core/AsyncContextImpl.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/AsyncContextImpl.java?rev=1397354&r1=1397353&r2=1397354&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/core/AsyncContextImpl.java (original) +++ tomcat/trunk/java/org/apache/catalina/core/AsyncContextImpl.java Thu Oct 11 22:52:30 2012 @@ -112,7 +112,7 @@ public class AsyncContextImpl implements try { Thread.currentThread().setContextClassLoader(newCL); request.getCoyoteRequest().getReadListener().onDataAvailable(); - if (request.getInputStream().dataAvailable()==0) { + if (request.getInputStream().isFinished()) { request.getCoyoteRequest().getReadListener().onAllDataRead(); } }finally { Modified: tomcat/trunk/test/org/apache/catalina/nonblocking/TestNonBlockingAPI.java URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/nonblocking/TestNonBlockingAPI.java?rev=1397354&r1=1397353&r2=1397354&view=diff ============================================================================== --- tomcat/trunk/test/org/apache/catalina/nonblocking/TestNonBlockingAPI.java (original) +++ tomcat/trunk/test/org/apache/catalina/nonblocking/TestNonBlockingAPI.java Thu Oct 11 22:52:30 2012 @@ -358,12 +358,11 @@ public class TestNonBlockingAPI extends public void onDataAvailable() { try { ServletInputStream in = ctx.getRequest().getInputStream(); - int avail = 0; String s = ""; - while ((avail = in.dataAvailable()) > 0) { - byte[] b = new byte[avail]; - in.read(b); - s += new String(b); + byte[] b = new byte[8192]; + while (in.isReady()) { + int read = in.read(b); + s += new String(b, 0, read); } System.out.println(s); if ("FINISHED".equals(s)) { --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org