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