diff --git a/jetty-websocket/websocket-core-server/src/main/java/org/eclipse/jetty/websocket/core/server/WebSocketNegotiation.java b/jetty-websocket/websocket-core-server/src/main/java/org/eclipse/jetty/websocket/core/server/WebSocketNegotiation.java index 3f68e012afde..258fac89b7b0 100644 --- a/jetty-websocket/websocket-core-server/src/main/java/org/eclipse/jetty/websocket/core/server/WebSocketNegotiation.java +++ b/jetty-websocket/websocket-core-server/src/main/java/org/eclipse/jetty/websocket/core/server/WebSocketNegotiation.java @@ -31,10 +31,10 @@ public abstract class WebSocketNegotiation { - private final Request baseRequest; private final HttpServletRequest request; private final HttpServletResponse response; private final WebSocketComponents components; + private Request baseRequest; private String version; private List offeredExtensions; private List negotiatedExtensions; @@ -54,6 +54,11 @@ public Request getBaseRequest() return baseRequest; } + public void upgrade() + { + this.baseRequest = null; + } + public HttpServletRequest getRequest() { return request; diff --git a/jetty-websocket/websocket-core-server/src/main/java/org/eclipse/jetty/websocket/core/server/internal/AbstractHandshaker.java b/jetty-websocket/websocket-core-server/src/main/java/org/eclipse/jetty/websocket/core/server/internal/AbstractHandshaker.java index 734091f247e9..ed8ce2559a45 100644 --- a/jetty-websocket/websocket-core-server/src/main/java/org/eclipse/jetty/websocket/core/server/internal/AbstractHandshaker.java +++ b/jetty-websocket/websocket-core-server/src/main/java/org/eclipse/jetty/websocket/core/server/internal/AbstractHandshaker.java @@ -167,6 +167,7 @@ public boolean upgradeRequest(WebSocketNegotiator negotiator, HttpServletRequest // Save state from request/response and remove reference to the base request/response. upgradeRequest.upgrade(); upgradeResponse.upgrade(); + negotiation.upgrade(); if (LOG.isDebugEnabled()) LOG.debug("upgrade connection={} session={} framehandler={}", connection, coreSession, handler);