src/jdk.jpackage/share/classes/jdk/jpackage/internal/IOUtils.java
branchJDK-8200758-branch
changeset 57391 970f28090a06
parent 57390 1cb722a11ead
child 57407 2c14fbeff1dc
--- a/src/jdk.jpackage/share/classes/jdk/jpackage/internal/IOUtils.java	Thu Jun 06 19:10:12 2019 -0400
+++ b/src/jdk.jpackage/share/classes/jdk/jpackage/internal/IOUtils.java	Thu Jun 06 19:14:02 2019 -0400
@@ -191,29 +191,23 @@
     }
 
     // run "launcher paramfile" in the directory where paramfile is kept
-    public static void run(String launcher, File paramFile, boolean verbose)
+    public static void run(String launcher, File paramFile)
             throws IOException {
         if (paramFile != null && paramFile.exists()) {
             ProcessBuilder pb =
                     new ProcessBuilder(launcher, paramFile.getName());
             pb = pb.directory(paramFile.getParentFile());
-            exec(pb, verbose);
+            exec(pb);
         }
     }
 
-    public static void exec(ProcessBuilder pb, boolean verbose)
+    public static void exec(ProcessBuilder pb)
             throws IOException {
-        exec(pb, verbose, false);
+        exec(pb, false, null);
     }
 
-    public static void exec(ProcessBuilder pb, boolean verbose,
-            boolean testForPresenseOnly) throws IOException {
-        exec(pb, verbose, testForPresenseOnly, null);
-    }
-
-    public static void exec(ProcessBuilder pb, boolean verbose,
-            boolean testForPresenseOnly, PrintStream consumer)
-            throws IOException {
+    public static void exec(ProcessBuilder pb, boolean testForPresenseOnly,
+            PrintStream consumer) throws IOException {
         pb.redirectErrorStream(true);
         Log.verbose("Running "
                 + Arrays.toString(pb.command().toArray(new String[0]))
@@ -243,45 +237,20 @@
         }
     }
 
-    @SuppressWarnings("unchecked")
-    private static Process startProcess(Object... args) throws IOException {
-        final ArrayList<String> argsList = new ArrayList<>();
-        for (Object a : args) {
-            if (a instanceof List) {
-                argsList.addAll((List)a);
-            } else if (a instanceof String) {
-                argsList.add((String)a);
-            }
-        }
+    public static int getProcessOutput(List<String> result, String... args)
+            throws IOException, InterruptedException {
+
+        ProcessBuilder pb = new ProcessBuilder(args);
 
-        return Runtime.getRuntime().exec(
-                argsList.toArray(new String[argsList.size()]));
-    }
+        final Process p = pb.start();
 
-    private static void logErrorStream(Process p) {
+        List<String> list = new ArrayList<>();
+
+        final BufferedReader in =
+                new BufferedReader(new InputStreamReader(p.getInputStream()));
         final BufferedReader err =
                 new BufferedReader(new InputStreamReader(p.getErrorStream()));
-        Thread t = new Thread(() -> {
-            try {
-                String line;
-                while ((line = err.readLine()) != null) {
-                    Log.error(line);
-                }
-            } catch (IOException ioe) {
-                Log.verbose(ioe);
-            }
-        });
-        t.setDaemon(true);
-        t.start();
-    }
 
-    public static int getProcessOutput(List<String> result, Object... args)
-            throws IOException, InterruptedException {
-        final Process p = startProcess(args);
-
-        List<String> list = new ArrayList<>();
-        final BufferedReader in =
-                new BufferedReader(new InputStreamReader(p.getInputStream()));
         Thread t = new Thread(() -> {
             try {
                 String line;
@@ -289,14 +258,21 @@
                     list.add(line);
                 }
             } catch (IOException ioe) {
-                jdk.jpackage.internal.Log.verbose(ioe);
+                Log.verbose(ioe);
+            }
+
+            try {
+                String line;
+                while ((line = err.readLine()) != null) {
+                    Log.error(line);
+                }
+            } catch (IOException ioe) {
+                  Log.verbose(ioe);
             }
         });
         t.setDaemon(true);
         t.start();
 
-        logErrorStream(p);
-
         int ret = p.waitFor();
 
         result.clear();