From 2daee16dacbf1e0a9186f260310400a03c10803d Mon Sep 17 00:00:00 2001 From: zhoulifu Date: Fri, 28 Apr 2017 17:38:03 +0800 Subject: [PATCH] Fix #465 Prevent decoding handshake response after client closed --- src/main/java/org/java_websocket/WebSocketImpl.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/java_websocket/WebSocketImpl.java b/src/main/java/org/java_websocket/WebSocketImpl.java index f3c31426a..560651d2b 100644 --- a/src/main/java/org/java_websocket/WebSocketImpl.java +++ b/src/main/java/org/java_websocket/WebSocketImpl.java @@ -151,7 +151,9 @@ public void decode( ByteBuffer socketBuffer ) { System.out.println( "process(" + socketBuffer.remaining() + "): {" + ( socketBuffer.remaining() > 1000 ? "too big to display" : new String( socketBuffer.array(), socketBuffer.position(), socketBuffer.remaining() ) ) + "}" ); if( readystate != READYSTATE.NOT_YET_CONNECTED ) { - decodeFrames( socketBuffer ); + if ( readystate == READYSTATE.OPEN ) { + decodeFrames( socketBuffer ); + } } else { if( decodeHandshake( socketBuffer ) ) { assert ( tmpHandshakeBytes.hasRemaining() != socketBuffer.hasRemaining() || !socketBuffer.hasRemaining() ); // the buffers will never have remaining bytes at the same time