From 9cbba6cce9ed9b406c1044b2e8c59842c90fc19c Mon Sep 17 00:00:00 2001 From: Megrez Lu Date: Thu, 1 Feb 2024 12:23:42 +0800 Subject: [PATCH] fix invoke with varargs Signed-off-by: Megrez Lu --- .../main/java/com/taobao/arthas/common/ReflectUtils.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/common/src/main/java/com/taobao/arthas/common/ReflectUtils.java b/common/src/main/java/com/taobao/arthas/common/ReflectUtils.java index 3be73a233c..eceb638eef 100644 --- a/common/src/main/java/com/taobao/arthas/common/ReflectUtils.java +++ b/common/src/main/java/com/taobao/arthas/common/ReflectUtils.java @@ -440,7 +440,14 @@ public static Class defineClass(String className, byte[] b, ClassLoader loader, protectionDomain = PROTECTION_DOMAIN; } try { - c = (Class) unreflect.invoke(loader, className, b, 0, b.length, protectionDomain); + List args = new ArrayList(6); + args.add(loader); + args.add(className); + args.add(b); + args.add(0); + args.add(b.length); + args.add(protectionDomain); + c = (Class) unreflect.invokeWithArguments(args); } catch (InvocationTargetException ex) { throw new ReflectException(ex.getTargetException()); } catch (Throwable ex) {