diff --git a/jetty-websocket/websocket-core/src/main/java/org/eclipse/jetty/websocket/core/CloseStatus.java b/jetty-websocket/websocket-core/src/main/java/org/eclipse/jetty/websocket/core/CloseStatus.java index ba16c6087b1..dc49b31f1dd 100644 --- a/jetty-websocket/websocket-core/src/main/java/org/eclipse/jetty/websocket/core/CloseStatus.java +++ b/jetty-websocket/websocket-core/src/main/java/org/eclipse/jetty/websocket/core/CloseStatus.java @@ -172,12 +172,14 @@ public class CloseStatus return null; } + // TODO consider defining a precedence for every CloseStatus, and change ChannelState only if higher precedence public static boolean isOrdinary(CloseStatus closeStatus) { switch (closeStatus.getCode()) { case NORMAL: case SHUTDOWN: + case NO_CODE: return true; default: diff --git a/jetty-websocket/websocket-core/src/main/java/org/eclipse/jetty/websocket/core/internal/FrameFlusher.java b/jetty-websocket/websocket-core/src/main/java/org/eclipse/jetty/websocket/core/internal/FrameFlusher.java index 2a962087a86..ad4da0bc9ee 100644 --- a/jetty-websocket/websocket-core/src/main/java/org/eclipse/jetty/websocket/core/internal/FrameFlusher.java +++ b/jetty-websocket/websocket-core/src/main/java/org/eclipse/jetty/websocket/core/internal/FrameFlusher.java @@ -64,6 +64,15 @@ public class FrameFlusher extends IteratingCallback this.buffers = new ArrayList<>((maxGather * 2) + 1); } + + /** + * Enqueue a Frame to be written to the endpoint. + * @param frame The frame to queue + * @param callback The callback to call once the frame is sent + * @param batch True if batch mode is to be used + * @return returns true if the frame was enqueued and iterate needs to be called, returns false if the + * FrameFlusher was closed + */ public boolean enqueue(Frame frame, Callback callback, boolean batch) { Entry entry = new Entry(frame, callback, batch); diff --git a/jetty-websocket/websocket-core/src/main/java/org/eclipse/jetty/websocket/core/internal/WebSocketConnection.java b/jetty-websocket/websocket-core/src/main/java/org/eclipse/jetty/websocket/core/internal/WebSocketConnection.java index 785d5084d4d..1879e386dad 100644 --- a/jetty-websocket/websocket-core/src/main/java/org/eclipse/jetty/websocket/core/internal/WebSocketConnection.java +++ b/jetty-websocket/websocket-core/src/main/java/org/eclipse/jetty/websocket/core/internal/WebSocketConnection.java @@ -348,7 +348,7 @@ public class WebSocketConnection extends AbstractConnection implements Connectio if (!fillingAndParsing) throw new IllegalStateException(); - if (demand != 0) + if (demand != 0) //if demand was canceled, this creates synthetic demand in order to read until EOF return true; fillingAndParsing = false;