Author: markt Date: Thu Apr 25 18:49:25 2013 New Revision: 1475900 URL: http://svn.apache.org/r1475900 Log: Fix some NPEs observed while investigating some unit test failures.
Modified: tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java Modified: tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java?rev=1475900&r1=1475899&r2=1475900&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java (original) +++ tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java Thu Apr 25 18:49:25 2013 @@ -582,11 +582,16 @@ public abstract class AbstractProtocol i public SocketState process(SocketWrapper<S> wrapper, SocketStatus status) { S socket = wrapper.getSocket(); - Processor<S> processor = connections.get(socket); + if (socket == null) { + // Nothing to do. Socket has been closed. + return SocketState.CLOSED; + } + + Processor<S> processor = connections.get(socket); if (status == SocketStatus.DISCONNECT && processor == null) { - //nothing more to be done endpoint requested a close - //and there are no object associated with this connection + // Nothing to do. Endpoint requested a close and there is no + // longer a processor associated with this socket. return SocketState.CLOSED; } Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java?rev=1475900&r1=1475899&r2=1475900&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java Thu Apr 25 18:49:25 2013 @@ -234,7 +234,7 @@ public class Http11NioProcessor extends SocketState state = super.process(socketWrapper); final NioEndpoint.KeyAttachment attach = (NioEndpoint.KeyAttachment)socket.getSocket().getAttachment(false); //return if we have more data to write - if (isRegisteredForWrite(attach)) { + if (attach != null && isRegisteredForWrite(attach)) { return SocketState.LONG; } else { return state; --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org