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
commit 56ce1d9a83c55cf37bbb4ebff7cbd404a54cb00f 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 c91a0f2..0120845 100644 --- a/java/org/apache/tomcat/websocket/WsSession.java +++ b/java/org/apache/tomcat/websocket/WsSession.java @@ -750,7 +750,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 e973552..90d7398 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 jakarta.websocket.DecodeException; +import jakarta.websocket.Decoder; import jakarta.websocket.MessageHandler; import jakarta.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 07b49ce..93feeeb 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 jakarta.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 0cb5fec..ce12f16 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 jakarta.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