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

Reply via email to