You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2015/01/29 20:12:11 UTC

svn commit: r1655812 - in /tomcat/trunk/java/org/apache/tomcat: util/net/SocketWrapperBase.java websocket/server/WsRemoteEndpointImplServer.java

Author: markt
Date: Thu Jan 29 19:12:11 2015
New Revision: 1655812

URL: http://svn.apache.org/r1655812
Log:
Fix another NPE observed in logs during unit test runs

Modified:
    tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java
    tomcat/trunk/java/org/apache/tomcat/websocket/server/WsRemoteEndpointImplServer.java

Modified: tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java?rev=1655812&r1=1655811&r2=1655812&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java Thu Jan 29 19:12:11 2015
@@ -27,9 +27,13 @@ import java.util.concurrent.locks.Reentr
 import java.util.concurrent.locks.ReentrantReadWriteLock.WriteLock;
 
 import org.apache.tomcat.util.buf.ByteBufferHolder;
+import org.apache.tomcat.util.res.StringManager;
 
 public abstract class SocketWrapperBase<E> {
 
+    protected static final StringManager sm = StringManager.getManager(
+            SocketWrapperBase.class.getPackage().getName());
+
     private volatile E socket;
     private final AbstractEndpoint<E> endpoint;
 
@@ -284,6 +288,9 @@ public abstract class SocketWrapperBase<
 
 
     public boolean canWrite() {
+        if (socketBufferHandler == null) {
+            throw new IllegalStateException(sm.getString("socket.closed"));
+        }
         return socketBufferHandler.isWriteBufferWritable() && bufferedWrites.size() == 0;
     }
 

Modified: tomcat/trunk/java/org/apache/tomcat/websocket/server/WsRemoteEndpointImplServer.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/server/WsRemoteEndpointImplServer.java?rev=1655812&r1=1655811&r2=1655812&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/websocket/server/WsRemoteEndpointImplServer.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/websocket/server/WsRemoteEndpointImplServer.java Thu Jan 29 19:12:11 2015
@@ -115,9 +115,9 @@ public class WsRemoteEndpointImplServer
                     break;
                 }
             }
-        } catch (IOException ioe) {
+        } catch (IOException | IllegalStateException e) {
             wsWriteTimeout.unregister(this);
-            clearHandler(ioe, useDispatch);
+            clearHandler(e, useDispatch);
             close();
         }
 



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org