in src/main/java/org/apache/sling/commons/threaddump/internal/ThreadDumpCommand.java [46:85]
public void execute(String command, PrintStream out, PrintStream err) {
// cut off leading command name
if (command.startsWith(CMD_NAME)) {
command = command.substring(CMD_NAME.length());
}
boolean longListing = false;
LinkedList<Long> threadIds = new LinkedList<Long>();
StringTokenizer tokener = new StringTokenizer(command, ", \t");
while (tokener.hasMoreTokens()) {
String token = tokener.nextToken().trim();
if (OPT_STACK.equals(token)) {
longListing = true;
} else {
try {
long threadId = Long.parseLong(token);
threadIds.add(threadId);
} catch (NumberFormatException nfe) {
noSuchThread(err, token);
}
}
}
PrintWriter pw = new PrintWriter(out);
if (threadIds.isEmpty()) {
printThreads(pw, longListing);
} else {
while (!threadIds.isEmpty()) {
Long threadId = threadIds.removeFirst();
if (!printThread(pw, threadId, longListing)) {
noSuchThread(err, threadId);
}
}
}
pw.flush();
}