Fixes for usage in combination with loadwatch #238
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This fixes the problems described in bug #230.
When using jline to create a new ConsoleReader object
in combination with loadwatch, the process never returned.
In jline1, a long time ago, Runtime.getRuntime().exec(cmd)
was used to execute commands. This was migrated to the
ProcessBuilder API later, which is the recommended way.
In the meantime, the commands (as plain strings) were split
manually with split(""), whereas Runtime.getRuntime().exec(cmd)
was using a StringTokenizer internally.
The java implementations here are different, and one needs to
be carefull when passing down stuff to the ProcessBuilder.
See also:
http://stackoverflow.com/questions/6856028/difference-between-processbuilder-and-runtime-exec
My implementation just uses explicit List calls everywhere
to make clear how arguments are split, which fixes the usage of
jline in combination with loadwatch.