Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGreg Wilkins2011-03-23 03:36:06 +0000
committerGreg Wilkins2011-03-23 03:36:06 +0000
commita6483bfa6f69bd3e0ffebd12ceabfc6cf4d3b967 (patch)
tree9f8d7d9a74da7cb63b80cf750f964ca7fbaaef9d /jetty-websocket
parent903dd14656aaebceec68ea21dc3b1e3c2d4b949b (diff)
downloadorg.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')
-rw-r--r--jetty-websocket/src/main/java/org/eclipse/jetty/websocket/WebSocketGeneratorD06.java18
-rw-r--r--jetty-websocket/src/main/java/org/eclipse/jetty/websocket/WebSocketParserD01.java2
-rw-r--r--jetty-websocket/src/test/java/org/eclipse/jetty/websocket/WebSocketParserD06Test.java3
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);

Back to the top