You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2021/05/05 15:01:50 UTC
[tomcat] 01/03: Refactor with a view towards using the
InstanceManager with decoders
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-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org