mirror of
https://github.com/honeymoose/OpenSearch.git
synced 2025-03-24 17:09:48 +00:00
Add useful message when no input from terminal (#29369)
Today when a user runs a CLI tool with standard input closed and no tty attached, the result from reading is null and this usually leads to a null pointer exception when we try to parse this input. This arises for example when the user runs the plugin installer through a Docker container without leaving standard input open and attaching a tty (docker exec <container ID> bin/elasticsearch-plugin install). When we try to read that the user accepts the plugin requiring additional security permissions we will get back null. This commit addresses this for all cases by throwing an illegal state exception. The solution for the user is leave standard input open and attach a tty (or, for some tools, use batch mode).
This commit is contained in:
parent
c341b41c54
commit
663a52ad55
@ -163,7 +163,11 @@ public abstract class Terminal {
|
||||
getWriter().print(text);
|
||||
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in, Charset.defaultCharset()));
|
||||
try {
|
||||
return reader.readLine();
|
||||
final String line = reader.readLine();
|
||||
if (line == null) {
|
||||
throw new IllegalStateException("unable to read from standard input; is standard input open and a tty attached?");
|
||||
}
|
||||
return line;
|
||||
} catch (IOException ioe) {
|
||||
throw new RuntimeException(ioe);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user