From b58f02f2d6dfcf88ffa6c757bf183ea74cf8a130 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B1=AA=E5=B0=8F=E5=93=A5?= <983433479@qq.com> Date: Fri, 11 Aug 2023 20:32:26 +0800 Subject: [PATCH] fix classloader command (#2601) --- .../arthas/core/command/klass100/ClassLoaderCommand.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/com/taobao/arthas/core/command/klass100/ClassLoaderCommand.java b/core/src/main/java/com/taobao/arthas/core/command/klass100/ClassLoaderCommand.java index 3216e8b76..6a7981361 100644 --- a/core/src/main/java/com/taobao/arthas/core/command/klass100/ClassLoaderCommand.java +++ b/core/src/main/java/com/taobao/arthas/core/command/klass100/ClassLoaderCommand.java @@ -175,7 +175,11 @@ public class ClassLoaderCommand extends AnnotatedCommand { } if (all) { - processAllClasses(process, inst); + String hashCode = this.hashCode; + if (StringUtils.isBlank(hashCode) && targetClassLoader != null) { + hashCode = "" + Integer.toHexString(targetClassLoader.hashCode()); + } + processAllClasses(process, inst, hashCode); } else if (classLoaderSpecified && resource != null) { processResources(process, inst, targetClassLoader); } else if (classLoaderSpecified && this.loadClass != null) { @@ -305,7 +309,7 @@ public class ClassLoaderCommand extends AnnotatedCommand { process.end(); } - private void processAllClasses(CommandProcess process, Instrumentation inst) { + private void processAllClasses(CommandProcess process, Instrumentation inst,String hashCode) { RowAffect affect = new RowAffect(); getAllClasses(hashCode, inst, affect, process); if (checkInterrupted(process)) {