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

Reply via email to