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

Reply via email to