Author: markt
Date: Sat Nov 24 18:49:45 2012
New Revision: 1413238
URL: http://svn.apache.org/viewvc?rev=1413238&view=rev
Log:
Add missing state checks
Fix i18n TODOs
Modified:
tomcat/trunk/java/org/apache/coyote/http11/upgrade/LocalStrings.properties
tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeServletInputStream.java
Modified:
tomcat/trunk/java/org/apache/coyote/http11/upgrade/LocalStrings.properties
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/upgrade/LocalStrings.properties?rev=1413238&r1=1413237&r2=1413238&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/upgrade/LocalStrings.properties
(original)
+++ tomcat/trunk/java/org/apache/coyote/http11/upgrade/LocalStrings.properties
Sat Nov 24 18:49:45 2012
@@ -16,6 +16,7 @@
upgrade.sis.isFinished.ise=It is illegal to call isFinished() when the
ServletInputStream is not in non-blocking mode (i.e. setReadListener() must be
called first)
upgrade.sis.isReady.ise=It is illegal to call isReady() when the
ServletInputStream is not in non-blocking mode (i.e. setReadListener() must be
called first)
upgrade.sis.readListener.null=It is illegal to pass null to setReadListener()
+upgrade.sis.read.ise=It is illegal to call any of the read() methods without
first checking that there is data available by calling isReady()
upgrade.sos.canWrite.ise=It is illegal to call canWrite() when the
ServletOutputStream is not in non-blocking mode (i.e. setWriteListener() must
be called first)
upgrade.sos.writeListener.null=It is illegal to pass null to setWriteListener()
Modified:
tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeServletInputStream.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeServletInputStream.java?rev=1413238&r1=1413237&r2=1413238&view=diff
==============================================================================
---
tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeServletInputStream.java
(original)
+++
tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeServletInputStream.java
Sat Nov 24 18:49:45 2012
@@ -21,8 +21,14 @@ import java.io.IOException;
import javax.servlet.ReadListener;
import javax.servlet.ServletInputStream;
+import org.apache.tomcat.util.res.StringManager;
+
public abstract class UpgradeServletInputStream extends ServletInputStream {
+ protected static final StringManager sm =
+ StringManager.getManager(Constants.Package);
+
+
// Start in blocking-mode
private volatile Boolean ready = Boolean.TRUE;
private volatile ReadListener listener = null;
@@ -30,6 +36,10 @@ public abstract class UpgradeServletInpu
@Override
public final boolean isFinished() {
+ if (listener == null) {
+ throw new IllegalStateException(
+ sm.getString("upgrade.sis.isFinished.ise"));
+ }
// The only way to finish an HTTP Upgrade connection is to close the
// socket.
return false;
@@ -38,6 +48,11 @@ public abstract class UpgradeServletInpu
@Override
public final boolean isReady() {
+ if (listener == null) {
+ throw new IllegalStateException(
+ sm.getString("upgrade.sis.isReady.ise"));
+ }
+
// If we already know the current state, return it.
if (ready != null) {
return ready.booleanValue();
@@ -55,8 +70,8 @@ public abstract class UpgradeServletInpu
@Override
public final void setReadListener(ReadListener listener) {
if (listener == null) {
- // TODO i18n
- throw new IllegalArgumentException();
+ throw new IllegalArgumentException(
+ sm.getString("upgrade.sis.readListener.null"));
}
this.listener = listener;
// Switching to non-blocking. Don't know if data is available.
@@ -102,8 +117,8 @@ public abstract class UpgradeServletInpu
private void preReadChecks() {
if (listener != null && (ready == null || !ready.booleanValue())) {
- // TODO i18n
- throw new IllegalStateException();
+ throw new IllegalStateException(
+ sm.getString("upgrade.sis.read.ise"));
}
// No longer know if data is available
ready = null;
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]