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: [email protected]
For additional commands, e-mail: [email protected]