From d41a297352316161db895198706c1915abfdc6ca Mon Sep 17 00:00:00 2001 From: Lachlan Roberts Date: Mon, 6 Sep 2021 17:14:53 +1000 Subject: [PATCH 1/2] Issue #6696 - don't keep Request object in the WebSocketNegotiation after upgrade Signed-off-by: Lachlan Roberts --- .../jetty/websocket/core/server/WebSocketNegotiation.java | 7 ++++++- .../websocket/core/server/internal/AbstractHandshaker.java | 1 + 2 files changed, 7 insertions(+), 1 deletion(-) 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..1f8b6ea3346f 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 setBaseRequest(Request baseRequest) + { + this.baseRequest = baseRequest; + } + 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..bd4c0c6def03 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.setBaseRequest(null); if (LOG.isDebugEnabled()) LOG.debug("upgrade connection={} session={} framehandler={}", connection, coreSession, handler); From 2aa966a8540889316917ccdaf355c3742e40bfdb Mon Sep 17 00:00:00 2001 From: Lachlan Roberts Date: Tue, 7 Sep 2021 10:19:51 +1000 Subject: [PATCH 2/2] Issue #6696 - change method name to WebSocketNegotiation.upgrade() Signed-off-by: Lachlan Roberts --- .../jetty/websocket/core/server/WebSocketNegotiation.java | 4 ++-- .../websocket/core/server/internal/AbstractHandshaker.java | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) 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 1f8b6ea3346f..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 @@ -54,9 +54,9 @@ public Request getBaseRequest() return baseRequest; } - public void setBaseRequest(Request baseRequest) + public void upgrade() { - this.baseRequest = baseRequest; + this.baseRequest = null; } public HttpServletRequest getRequest() 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 bd4c0c6def03..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,7 +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.setBaseRequest(null); + negotiation.upgrade(); if (LOG.isDebugEnabled()) LOG.debug("upgrade connection={} session={} framehandler={}", connection, coreSession, handler);