This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/master by this push: new 7883e3d Refactor InstanceManager lookup 7883e3d is described below commit 7883e3dec71c27b2d14eb4a41c1beae9ff726aa5 Author: Mark Thomas <ma...@apache.org> AuthorDate: Wed May 5 12:08:50 2021 +0100 Refactor InstanceManager lookup --- java/org/apache/tomcat/websocket/WsSession.java | 29 +++++++--------------- .../tomcat/websocket/WsWebSocketContainer.java | 8 ++++-- 2 files changed, 15 insertions(+), 22 deletions(-) diff --git a/java/org/apache/tomcat/websocket/WsSession.java b/java/org/apache/tomcat/websocket/WsSession.java index 4c71d84..c91a0f2 100644 --- a/java/org/apache/tomcat/websocket/WsSession.java +++ b/java/org/apache/tomcat/websocket/WsSession.java @@ -54,7 +54,6 @@ import jakarta.websocket.server.ServerEndpointConfig.Configurator; import org.apache.juli.logging.Log; import org.apache.juli.logging.LogFactory; import org.apache.tomcat.InstanceManager; -import org.apache.tomcat.InstanceManagerBindings; import org.apache.tomcat.util.ExceptionUtils; import org.apache.tomcat.util.res.StringManager; import org.apache.tomcat.websocket.pojo.PojoEndpointServer; @@ -173,12 +172,7 @@ public class WsSession implements Session { this.userProperties.putAll(endpointConfig.getUserProperties()); this.id = Long.toHexString(ids.getAndIncrement()); - InstanceManager instanceManager = webSocketContainer.getInstanceManager(); - if (instanceManager == null) { - instanceManager = InstanceManagerBindings.get(applicationClassLoader); - } - - this.localEndpoint = clientEndpointHolder.getInstance(instanceManager); + this.localEndpoint = clientEndpointHolder.getInstance(getInstanceManager()); if (log.isDebugEnabled()) { log.debug(sm.getString("wsSession.created", id)); @@ -261,11 +255,7 @@ public class WsSession implements Session { this.userProperties.putAll(endpointConfig.getUserProperties()); this.id = Long.toHexString(ids.getAndIncrement()); - InstanceManager instanceManager = webSocketContainer.getInstanceManager(); - if (instanceManager == null) { - instanceManager = InstanceManagerBindings.get(applicationClassLoader); - } - + InstanceManager instanceManager = getInstanceManager(); Configurator configurator = serverEndpointConfig.getConfigurator(); Class<?> clazz = serverEndpointConfig.getEndpointClass(); @@ -390,10 +380,7 @@ public class WsSession implements Session { this.userProperties.putAll(endpointConfig.getUserProperties()); this.id = Long.toHexString(ids.getAndIncrement()); - InstanceManager instanceManager = webSocketContainer.getInstanceManager(); - if (instanceManager == null) { - instanceManager = InstanceManagerBindings.get(applicationClassLoader); - } + InstanceManager instanceManager = getInstanceManager(); if (instanceManager != null) { try { instanceManager.newInstance(localEndpoint); @@ -408,6 +395,11 @@ public class WsSession implements Session { } + public InstanceManager getInstanceManager() { + return webSocketContainer.getInstanceManager(applicationClassLoader); + } + + @Override public WebSocketContainer getContainer() { checkState(); @@ -758,10 +750,7 @@ public class WsSession implements Session { // Fire the onClose event Throwable throwable = null; - InstanceManager instanceManager = webSocketContainer.getInstanceManager(); - if (instanceManager == null) { - instanceManager = InstanceManagerBindings.get(applicationClassLoader); - } + InstanceManager instanceManager = webSocketContainer.getInstanceManager(applicationClassLoader); Thread t = Thread.currentThread(); ClassLoader cl = t.getContextClassLoader(); t.setContextClassLoader(applicationClassLoader); diff --git a/java/org/apache/tomcat/websocket/WsWebSocketContainer.java b/java/org/apache/tomcat/websocket/WsWebSocketContainer.java index aee1994..52d7837 100644 --- a/java/org/apache/tomcat/websocket/WsWebSocketContainer.java +++ b/java/org/apache/tomcat/websocket/WsWebSocketContainer.java @@ -69,6 +69,7 @@ import jakarta.websocket.WebSocketContainer; import org.apache.juli.logging.Log; import org.apache.juli.logging.LogFactory; import org.apache.tomcat.InstanceManager; +import org.apache.tomcat.InstanceManagerBindings; import org.apache.tomcat.util.buf.StringUtils; import org.apache.tomcat.util.codec.binary.Base64; import org.apache.tomcat.util.collections.CaseInsensitiveKeyMap; @@ -105,8 +106,11 @@ public class WsWebSocketContainer implements WebSocketContainer, BackgroundProce private InstanceManager instanceManager; - InstanceManager getInstanceManager() { - return instanceManager; + protected InstanceManager getInstanceManager(ClassLoader classLoader) { + if (instanceManager != null) { + return instanceManager; + } + return InstanceManagerBindings.get(classLoader); } protected void setInstanceManager(InstanceManager instanceManager) { --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org