Hi,
There has always been an implicit null-check for args by the for loop
attempting to iterate but the check seems to be intended and wrong for
the elements. See attached patch.
>From the comment to args, "the command-line arguments for the tool", I
guess it makes sense to conclude that these should not be allowed to be
null, just like on a command line, but empty strings are be fine.
Regards,
Philipp
diff -r 7c17199fa37d src/java.base/share/classes/java/util/spi/ToolProvider.java
--- a/src/java.base/share/classes/java/util/spi/ToolProvider.java Fri Feb 15 08:21:08 2019 -0500
+++ b/src/java.base/share/classes/java/util/spi/ToolProvider.java Fri Feb 15 22:34:30 2019 +0100
@@ -126,8 +126,9 @@
default int run(PrintStream out, PrintStream err, String... args) {
Objects.requireNonNull(out);
Objects.requireNonNull(err);
+ Objects.requireNonNull(args);
for (String arg : args) {
- Objects.requireNonNull(args);
+ Objects.requireNonNull(arg);
}
PrintWriter outWriter = new PrintWriter(out);