diff -r 84b0544833c4 -r 060d9d139109 src/jdk.jfr/share/classes/jdk/jfr/internal/dcmd/DCmdStart.java --- a/src/jdk.jfr/share/classes/jdk/jfr/internal/dcmd/DCmdStart.java Thu Sep 12 11:35:02 2019 +0200 +++ b/src/jdk.jfr/share/classes/jdk/jfr/internal/dcmd/DCmdStart.java Sat Sep 14 13:03:44 2019 +0200 @@ -24,6 +24,7 @@ */ package jdk.jfr.internal.dcmd; +import java.io.FileNotFoundException; import java.io.IOException; import java.nio.file.Files; import java.nio.file.InvalidPathException; @@ -106,13 +107,17 @@ if (duration == null && Boolean.FALSE.equals(dumpOnExit) && path != null) { throw new DCmdException("Filename can only be set for a time bound recording or if dumponexit=true. Set duration/dumponexit or omit filename."); } - + if (settings.length == 1 && settings[0].length() == 0) { + throw new DCmdException("No settings specified. Use settings=none to start without any settings"); + } Map s = new HashMap<>(); for (String configName : settings) { try { s.putAll(JFC.createKnown(configName).getSettings()); + } catch(FileNotFoundException e) { + throw new DCmdException("Could not find settings file'" + configName + "'", e); } catch (IOException | ParseException e) { - throw new DCmdException("Could not parse setting " + settings[0], e); + throw new DCmdException("Could not parse settings file '" + settings[0] + "'", e); } }