[JENKINS-69543] Fix thread safety in WebSocket handling (#7076)

This commit is contained in:
Vincent Latombe authored and GitHub committed 2022-09-08 08:35:18 -07:00
1 parent 1e6c3daefe
commit b7b5bc6ea3
2 files changed
+4 -2

No files matched your search

@@ -26,6 +26,7 @@ package jenkins.websocket;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.util.Collections;
import java.util.Map;
import java.util.WeakHashMap;
import java.util.concurrent.CompletableFuture;
@@ -49,7 +50,7 @@ public class Jetty10Provider implements Provider {
private static final String ATTR_LISTENER = Jetty10Provider.class.getName() + ".listener";
// TODO does not seem possible to use HttpServletRequest.get/setAttribute for this
private static final Map<Listener, Session> sessions = new WeakHashMap<>();
private static final Map<Listener, Session> sessions = Collections.synchronizedMap(new WeakHashMap<>());
public Jetty10Provider() {
JettyWebSocketServerContainer.class.hashCode();
@@ -26,6 +26,7 @@ package jenkins.websocket;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.util.Collections;
import java.util.Map;
import java.util.WeakHashMap;
import java.util.concurrent.Future;
@@ -48,7 +49,7 @@ public class Jetty9Provider implements Provider {
private static final String ATTR_LISTENER = Jetty9Provider.class.getName() + ".listener";
// TODO does not seem possible to use HttpServletRequest.get/setAttribute for this
private static final Map<Listener, Session> sessions = new WeakHashMap<>();
private static final Map<Listener, Session> sessions = Collections.synchronizedMap(new WeakHashMap<>());
private WebSocketServletFactory factory;