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