# HG changeset patch # User herrick # Date 1562020982 14400 # Node ID 3fbe47a62ed0cf35ec35db15152fc8be233f39b3 # Parent 5a5b85f00a6311fcb4691649022685b1253127a6 8226751: "Exception: ..." for missing file Reviewed-by: almatvee, kcr diff -r 5a5b85f00a63 -r 3fbe47a62ed0 src/jdk.jpackage/share/classes/jdk/jpackage/internal/resources/MainResources.properties --- a/src/jdk.jpackage/share/classes/jdk/jpackage/internal/resources/MainResources.properties Mon Jul 01 18:31:16 2019 -0400 +++ b/src/jdk.jpackage/share/classes/jdk/jpackage/internal/resources/MainResources.properties Mon Jul 01 18:43:02 2019 -0400 @@ -82,3 +82,4 @@ ERR_NoEntryPoint=Error: creating application image requires --main-jar or --module Option. ERR_InputNotDirectory=Error: Input directory specified is not a directory: {0}. ERR_CannotReadInputDir=Error: No permission to read from input directory: {0}. +ERR_CannotParseOptions=Error: Processing @filename option: {0}. diff -r 5a5b85f00a63 -r 3fbe47a62ed0 src/jdk.jpackage/share/classes/jdk/jpackage/internal/resources/MainResources_ja.properties --- a/src/jdk.jpackage/share/classes/jdk/jpackage/internal/resources/MainResources_ja.properties Mon Jul 01 18:31:16 2019 -0400 +++ b/src/jdk.jpackage/share/classes/jdk/jpackage/internal/resources/MainResources_ja.properties Mon Jul 01 18:43:02 2019 -0400 @@ -82,3 +82,4 @@ ERR_NoEntryPoint=Error: creating application image requires --main-jar or --module Option. ERR_InputNotDirectory=Error: Input directory specified is not a directory: {0}. ERR_CannotReadInputDir=Error: No permission to read from input directory: {0}. +ERR_CannotParseOptions=Error: Processing @filename option: {0}. diff -r 5a5b85f00a63 -r 3fbe47a62ed0 src/jdk.jpackage/share/classes/jdk/jpackage/internal/resources/MainResources_zh_CN.properties --- a/src/jdk.jpackage/share/classes/jdk/jpackage/internal/resources/MainResources_zh_CN.properties Mon Jul 01 18:31:16 2019 -0400 +++ b/src/jdk.jpackage/share/classes/jdk/jpackage/internal/resources/MainResources_zh_CN.properties Mon Jul 01 18:43:02 2019 -0400 @@ -82,3 +82,4 @@ ERR_NoEntryPoint=Error: creating application image requires --main-jar or --module Option. ERR_InputNotDirectory=Error: Input directory specified is not a directory: {0}. ERR_CannotReadInputDir=Error: No permission to read from input directory: {0}. +ERR_CannotParseOptions=Error: Processing @filename option: {0}. diff -r 5a5b85f00a63 -r 3fbe47a62ed0 src/jdk.jpackage/share/classes/jdk/jpackage/main/CommandLine.java --- a/src/jdk.jpackage/share/classes/jdk/jpackage/main/CommandLine.java Mon Jul 01 18:31:16 2019 -0400 +++ b/src/jdk.jpackage/share/classes/jdk/jpackage/main/CommandLine.java Mon Jul 01 18:43:02 2019 -0400 @@ -25,19 +25,22 @@ package jdk.jpackage.main; +import java.io.FileNotFoundException; import java.io.IOException; +import java.io.File; import java.io.Reader; import java.nio.charset.Charset; import java.nio.file.Files; +import java.nio.file.Path; import java.nio.file.Paths; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** - * This file is direct copy of CommandLine.java in com.sun.tools.javac.main. + * This file was originally a copy of CommandLine.java in + * com.sun.tools.javac.main. * It should track changes made to that file. - * It is modified only to remove content not used by jpackage */ /** @@ -84,6 +87,9 @@ } private static void loadCmdFile(String name, List args) throws IOException { + if (!Files.isReadable(Path.of(name))) { + throw new FileNotFoundException(name); + } try (Reader r = Files.newBufferedReader(Paths.get(name), Charset.defaultCharset())) { Tokenizer t = new Tokenizer(r); String s; diff -r 5a5b85f00a63 -r 3fbe47a62ed0 src/jdk.jpackage/share/classes/jdk/jpackage/main/Main.java --- a/src/jdk.jpackage/share/classes/jdk/jpackage/main/Main.java Mon Jul 01 18:31:16 2019 -0400 +++ b/src/jdk.jpackage/share/classes/jdk/jpackage/main/Main.java Mon Jul 01 18:43:02 2019 -0400 @@ -29,11 +29,13 @@ import jdk.jpackage.internal.CLIHelp; import java.io.PrintWriter; import java.util.ResourceBundle; +import java.io.FileNotFoundException; import java.io.IOException; +import java.text.MessageFormat; public class Main { - private static final ResourceBundle bundle = ResourceBundle.getBundle( + private static final ResourceBundle I18N = ResourceBundle.getBundle( "jdk.jpackage.internal.resources.MainResources"); /** @@ -73,6 +75,10 @@ String[] newArgs; try { newArgs = CommandLine.parse(args); + } catch (FileNotFoundException fnfe) { + Log.error(MessageFormat.format(I18N.getString( + "ERR_CannotParseOptions"), fnfe.getMessage())); + return 1; } catch (IOException ioe) { Log.error(ioe.getMessage()); return 1;