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 e5ee679cbca26a2468a3803bfa44074a62208ea6 Author: Mark Thomas <ma...@apache.org> AuthorDate: Wed May 5 12:57:56 2021 +0100 Refactor with a view towards using the InstanceManager with decoders --- java/org/apache/tomcat/websocket/WsSession.java | 2 +- .../tomcat/websocket/pojo/PojoMessageHandlerWholeBase.java | 14 +++++++++++++- .../websocket/pojo/PojoMessageHandlerWholeBinary.java | 11 ----------- .../tomcat/websocket/pojo/PojoMessageHandlerWholeText.java | 10 ---------- 4 files changed, 14 insertions(+), 23 deletions(-) diff --git a/java/org/apache/tomcat/websocket/WsSession.java b/java/org/apache/tomcat/websocket/WsSession.java index 39a2684..c090c20 100644 --- a/java/org/apache/tomcat/websocket/WsSession.java +++ b/java/org/apache/tomcat/websocket/WsSession.java @@ -749,7 +749,7 @@ public class WsSession implements Session { // Fire the onClose event Throwable throwable = null; - InstanceManager instanceManager = webSocketContainer.getInstanceManager(applicationClassLoader); + InstanceManager instanceManager = getInstanceManager(); Thread t = Thread.currentThread(); ClassLoader cl = t.getContextClassLoader(); t.setContextClassLoader(applicationClassLoader); diff --git a/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerWholeBase.java b/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerWholeBase.java index aa4abbe..d2b0f12 100644 --- a/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerWholeBase.java +++ b/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerWholeBase.java @@ -18,8 +18,11 @@ package org.apache.tomcat.websocket.pojo; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.List; import javax.websocket.DecodeException; +import javax.websocket.Decoder; import javax.websocket.MessageHandler; import javax.websocket.Session; @@ -34,6 +37,8 @@ import org.apache.tomcat.websocket.WsSession; public abstract class PojoMessageHandlerWholeBase<T> extends PojoMessageHandlerBase<T> implements MessageHandler.Whole<T> { + protected final List<Decoder> decoders = new ArrayList<>(); + public PojoMessageHandlerWholeBase(Object pojo, Method method, Session session, Object[] params, int indexPayload, boolean convert, int indexSession, long maxMessageSize) { @@ -84,11 +89,18 @@ public abstract class PojoMessageHandlerWholeBase<T> processResult(result); } + + protected void onClose() { + for (Decoder decoder : decoders) { + decoder.destroy(); + } + } + + protected Object convert(T message) { return message; } protected abstract Object decode(T message) throws DecodeException; - protected abstract void onClose(); } diff --git a/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerWholeBinary.java b/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerWholeBinary.java index e4756f6..0444d3d 100644 --- a/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerWholeBinary.java +++ b/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerWholeBinary.java @@ -20,7 +20,6 @@ import java.io.ByteArrayInputStream; import java.io.IOException; import java.lang.reflect.Method; import java.nio.ByteBuffer; -import java.util.ArrayList; import java.util.List; import javax.websocket.DecodeException; @@ -41,8 +40,6 @@ public class PojoMessageHandlerWholeBinary private static final StringManager sm = StringManager.getManager(PojoMessageHandlerWholeBinary.class); - private final List<Decoder> decoders = new ArrayList<>(); - private final boolean isForInputStream; public PojoMessageHandlerWholeBinary(Object pojo, Method method, @@ -120,12 +117,4 @@ public class PojoMessageHandlerWholeBinary return array; } } - - - @Override - protected void onClose() { - for (Decoder decoder : decoders) { - decoder.destroy(); - } - } } diff --git a/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerWholeText.java b/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerWholeText.java index 3ec4bd7..fd16273 100644 --- a/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerWholeText.java +++ b/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerWholeText.java @@ -19,7 +19,6 @@ package org.apache.tomcat.websocket.pojo; import java.io.IOException; import java.io.StringReader; import java.lang.reflect.Method; -import java.util.ArrayList; import java.util.List; import javax.websocket.DecodeException; @@ -42,7 +41,6 @@ public class PojoMessageHandlerWholeText private static final StringManager sm = StringManager.getManager(PojoMessageHandlerWholeText.class); - private final List<Decoder> decoders = new ArrayList<>(); private final Class<?> primitiveType; public PojoMessageHandlerWholeText(Object pojo, Method method, @@ -125,12 +123,4 @@ public class PojoMessageHandlerWholeText protected Object convert(String message) { return new StringReader(message); } - - - @Override - protected void onClose() { - for (Decoder decoder : decoders) { - decoder.destroy(); - } - } } --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org