This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 8.5.x in repository https://gitbox.apache.org/repos/asf/tomcat.git
commit d3b3552b5627c4434899e21255c06b932ae7df2c 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 cbd599e..39a2684 100644 --- a/java/org/apache/tomcat/websocket/WsSession.java +++ b/java/org/apache/tomcat/websocket/WsSession.java @@ -53,7 +53,6 @@ import javax.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; @@ -172,12 +171,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)); @@ -260,11 +254,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(); @@ -389,10 +379,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); @@ -407,6 +394,11 @@ public class WsSession implements Session { } + public InstanceManager getInstanceManager() { + return webSocketContainer.getInstanceManager(applicationClassLoader); + } + + @Override public WebSocketContainer getContainer() { checkState(); @@ -757,10 +749,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 a6a677b..89bbbb0 100644 --- a/java/org/apache/tomcat/websocket/WsWebSocketContainer.java +++ b/java/org/apache/tomcat/websocket/WsWebSocketContainer.java @@ -68,6 +68,7 @@ import javax.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; @@ -104,8 +105,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