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: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org