diff --git a/core/src/main/java/com/taobao/arthas/core/command/monitor200/ThreadCommand.java b/core/src/main/java/com/taobao/arthas/core/command/monitor200/ThreadCommand.java index 04c66fbf5..63e975174 100755 --- a/core/src/main/java/com/taobao/arthas/core/command/monitor200/ThreadCommand.java +++ b/core/src/main/java/com/taobao/arthas/core/command/monitor200/ThreadCommand.java @@ -188,7 +188,14 @@ public class ThreadCommand extends AnnotatedCommand { List threadStats = threadSampler.sample(ThreadUtil.getThreads()); int limit = Math.min(threadStats.size(), topNBusy); - List topNThreads = threadStats.subList(0, limit); + + List topNThreads = null; + if (limit > 0) { + topNThreads = threadStats.subList(0, limit); + } else { // -1 for all threads + topNThreads = threadStats; + } + List tids = new ArrayList(topNThreads.size()); for (ThreadVO thread : topNThreads) { if (thread.getId() > 0) {