diff options
author | Greg Wilkins | 2011-03-23 03:36:06 +0000 |
---|---|---|
committer | Greg Wilkins | 2011-03-23 03:36:06 +0000 |
commit | a6483bfa6f69bd3e0ffebd12ceabfc6cf4d3b967 (patch) | |
tree | 9f8d7d9a74da7cb63b80cf750f964ca7fbaaef9d /jetty-websocket | |
parent | 903dd14656aaebceec68ea21dc3b1e3c2d4b949b (diff) | |
download | org.eclipse.jetty.project-a6483bfa6f69bd3e0ffebd12ceabfc6cf4d3b967.tar.gz org.eclipse.jetty.project-a6483bfa6f69bd3e0ffebd12ceabfc6cf4d3b967.tar.xz org.eclipse.jetty.project-a6483bfa6f69bd3e0ffebd12ceabfc6cf4d3b967.zip |
340265 Improve handling of io shutdown in SSL
git-svn-id: svn+ssh://dev.eclipse.org/svnroot/rt/org.eclipse.jetty/jetty/trunk@2906 7e9141cc-0065-0410-87d8-b60c137991c4
Diffstat (limited to 'jetty-websocket')
3 files changed, 9 insertions, 14 deletions
diff --git a/jetty-websocket/src/main/java/org/eclipse/jetty/websocket/WebSocketGeneratorD06.java b/jetty-websocket/src/main/java/org/eclipse/jetty/websocket/WebSocketGeneratorD06.java index f8194422fe..c956df594f 100644 --- a/jetty-websocket/src/main/java/org/eclipse/jetty/websocket/WebSocketGeneratorD06.java +++ b/jetty-websocket/src/main/java/org/eclipse/jetty/websocket/WebSocketGeneratorD06.java @@ -247,21 +247,13 @@ public class WebSocketGeneratorD06 implements WebSocketGenerator private synchronized int flushBuffer() throws IOException { - try - { - if (!_endp.isOpen()) - throw new EofException(); + if (!_endp.isOpen()) + throw new EofException(); - if (_buffer!=null) - return _endp.flush(_buffer); + if (_buffer!=null) + return _endp.flush(_buffer); - return 0; - } - catch(IOException e) - { - System.err.println("FAILED to flush: "+_buffer.toDetailString()); - throw e; - } + return 0; } private synchronized int expelBuffer(long blockFor) throws IOException diff --git a/jetty-websocket/src/main/java/org/eclipse/jetty/websocket/WebSocketParserD01.java b/jetty-websocket/src/main/java/org/eclipse/jetty/websocket/WebSocketParserD01.java index eccd780028..72f24f0941 100644 --- a/jetty-websocket/src/main/java/org/eclipse/jetty/websocket/WebSocketParserD01.java +++ b/jetty-websocket/src/main/java/org/eclipse/jetty/websocket/WebSocketParserD01.java @@ -120,7 +120,7 @@ public class WebSocketParserD01 implements WebSocketParser { int filled=_endp.isOpen()?_endp.fill(_buffer):-1; if (filled<=0) - return total_filled; + return total_filled>0?total_filled:-1; total_filled+=filled; available=_buffer.length(); } diff --git a/jetty-websocket/src/test/java/org/eclipse/jetty/websocket/WebSocketParserD06Test.java b/jetty-websocket/src/test/java/org/eclipse/jetty/websocket/WebSocketParserD06Test.java index 3f58c80fd2..bcd513657a 100644 --- a/jetty-websocket/src/test/java/org/eclipse/jetty/websocket/WebSocketParserD06Test.java +++ b/jetty-websocket/src/test/java/org/eclipse/jetty/websocket/WebSocketParserD06Test.java @@ -80,6 +80,7 @@ public class WebSocketParserD06Test { WebSocketBuffers buffers = new WebSocketBuffers(1024); ByteArrayEndPoint endPoint = new ByteArrayEndPoint(); + endPoint.setNonBlocking(true); _handler = new Handler(); _parser=new WebSocketParserD06(buffers, endPoint,_handler,true); _in = new MaskedByteArrayBuffer(); @@ -243,6 +244,8 @@ public class WebSocketParserD06Test @Test public void testFrameTooLarge() throws Exception { + // Buffers are only 1024, so this frame is too large + _in.sendMask(); _in.put((byte)0x84); _in.put((byte)0x7E); |