public void execute()

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();
    }