--- 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<String, String> 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);
}
}