This is an automated email from the ASF dual-hosted git repository. brandonwilliams pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/cassandra.git
The following commit(s) were added to refs/heads/trunk by this push: new 6d9465a Improve cassandra-stress logging when using a profile file that doesn't exist. 6d9465a is described below commit 6d9465a00dc26ad0ba589252686de52b4a537bd9 Author: Alex Ott <alex...@gmail.com> AuthorDate: Sat Apr 28 19:35:17 2018 +0200 Improve cassandra-stress logging when using a profile file that doesn't exist. Patch by Alex Ott, reviewed by brandonwilliams for CASSANDRA-14425 --- CHANGES.txt | 1 + tools/stress/src/org/apache/cassandra/stress/Stress.java | 12 ++++++++++++ .../cassandra/stress/settings/SettingsCommandUser.java | 13 ++++++++++++- 3 files changed, 25 insertions(+), 1 deletion(-) diff --git a/CHANGES.txt b/CHANGES.txt index 7287c0b..dcefef0 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 4.0-beta2 + * Improve cassandra-stress logging when using a profile file that doesn't exist (CASSANDRA-14425) * Improve logging for socket connection/disconnection (CASSANDRA-15980) * Throw FSWriteError upon write failures in order to apply DiskFailurePolicy (CASSANDRA-15928) * Forbid altering UDTs used in partition keys (CASSANDRA-15933) diff --git a/tools/stress/src/org/apache/cassandra/stress/Stress.java b/tools/stress/src/org/apache/cassandra/stress/Stress.java index 3c0fa96..1fd808f 100644 --- a/tools/stress/src/org/apache/cassandra/stress/Stress.java +++ b/tools/stress/src/org/apache/cassandra/stress/Stress.java @@ -26,6 +26,7 @@ import org.apache.cassandra.stress.settings.StressSettings; import org.apache.cassandra.stress.util.MultiResultLogger; import org.apache.cassandra.utils.FBUtilities; import org.apache.cassandra.utils.WindowsTimer; +import org.apache.commons.lang3.exception.ExceptionUtils; public final class Stress { @@ -87,6 +88,17 @@ public final class Stress printHelpMessage(); return 1; } + catch (Throwable e) + { + Throwable rc = ExceptionUtils.getRootCause(e); + if (rc instanceof FileNotFoundException) + { + System.out.printf("File '%s' doesn't exist!%n", rc.getMessage()); + printHelpMessage(); + return 1; + } + throw e; + } MultiResultLogger logout = settings.log.getOutput(); diff --git a/tools/stress/src/org/apache/cassandra/stress/settings/SettingsCommandUser.java b/tools/stress/src/org/apache/cassandra/stress/settings/SettingsCommandUser.java index fd34d74..cbf8a3a 100644 --- a/tools/stress/src/org/apache/cassandra/stress/settings/SettingsCommandUser.java +++ b/tools/stress/src/org/apache/cassandra/stress/settings/SettingsCommandUser.java @@ -22,6 +22,7 @@ package org.apache.cassandra.stress.settings; import java.io.File; +import java.io.FileNotFoundException; import java.net.URI; import java.util.Arrays; import java.util.Collections; @@ -73,7 +74,17 @@ public class SettingsCommandUser extends SettingsCommand for (String curYamlPath : yamlPaths) { File yamlFile = new File(curYamlPath); - StressProfile profile = StressProfile.load(yamlFile.exists() ? yamlFile.toURI() : URI.create(curYamlPath)); + URI yamlURI; + if (yamlFile.exists()) { + yamlURI = yamlFile.toURI(); + } else { + yamlURI = URI.create(curYamlPath); + String uriScheme = yamlURI.getScheme(); + if (uriScheme == null || "file".equals(uriScheme)) { + throw new IllegalArgumentException("File '" + yamlURI.getPath() + "' doesn't exist!"); + } + } + StressProfile profile = StressProfile.load(yamlURI); String specName = profile.specName; if (default_profile_name == null) {default_profile_name=specName;} //first file is default if (profiles.containsKey(specName)) --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org