diff options
author | Duarte Meneses <duarte.meneses@sonarsource.com> | 2016-09-15 16:24:36 +0200 |
---|---|---|
committer | Duarte Meneses <duarte.meneses@sonarsource.com> | 2016-09-16 13:36:49 +0200 |
commit | 1d6a79e5221587c98f451b233b99eeea7d66f4d7 (patch) | |
tree | 6b7c5260bd14d3bcce06cc7fdc44eedd18d9caf5 /src/main | |
parent | 12c373fad66da9ccb9cfb2ce7e3c5d2de4f60fe2 (diff) | |
download | sonar-scanner-cli-1d6a79e5221587c98f451b233b99eeea7d66f4d7.tar.gz sonar-scanner-cli-1d6a79e5221587c98f451b233b99eeea7d66f4d7.zip |
SQSCANNER-23 Support the new 'MessageException' unchecked exception and log by default the error stack trace only when a non-MessageException is thrown
Diffstat (limited to 'src/main')
-rw-r--r-- | src/main/java/org/sonarsource/scanner/cli/Cli.java | 12 | ||||
-rw-r--r-- | src/main/java/org/sonarsource/scanner/cli/Main.java | 31 |
2 files changed, 14 insertions, 29 deletions
diff --git a/src/main/java/org/sonarsource/scanner/cli/Cli.java b/src/main/java/org/sonarsource/scanner/cli/Cli.java index 784f6c1..cdada21 100644 --- a/src/main/java/org/sonarsource/scanner/cli/Cli.java +++ b/src/main/java/org/sonarsource/scanner/cli/Cli.java @@ -26,7 +26,6 @@ class Cli { private boolean debugEnabled = false; private boolean displayVersionOnly = false; - private boolean displayStackTrace = false; private final Properties props = new Properties(); private final Exit exit; private final Logs logger; @@ -44,10 +43,6 @@ class Cli { return displayVersionOnly; } - boolean isDisplayStackTrace() { - return displayStackTrace; - } - Properties properties() { return props; } @@ -66,10 +61,9 @@ class Cli { } else if ("-v".equals(arg) || "--version".equals(arg)) { displayVersionOnly = true; - + } else if ("-e".equals(arg) || "--errors".equals(arg)) { - displayStackTrace = true; - logger.setDisplayStackTrace(true); + logger.info("Option -e/--errors is no longer supported and will be ignored"); } else if ("-X".equals(arg) || "--debug".equals(arg)) { props.setProperty("sonar.verbose", "true"); @@ -100,7 +94,6 @@ class Cli { private void reset() { props.clear(); debugEnabled = false; - displayStackTrace = false; displayVersionOnly = false; } @@ -130,7 +123,6 @@ class Cli { logger.info(""); logger.info("Options:"); logger.info(" -D,--define <arg> Define property"); - logger.info(" -e,--errors Produce execution error messages"); logger.info(" -h,--help Display help information"); logger.info(" -v,--version Display version information"); logger.info(" -X,--debug Produce execution debug output"); diff --git a/src/main/java/org/sonarsource/scanner/cli/Main.java b/src/main/java/org/sonarsource/scanner/cli/Main.java index 4c26e90..b8b6e68 100644 --- a/src/main/java/org/sonarsource/scanner/cli/Main.java +++ b/src/main/java/org/sonarsource/scanner/cli/Main.java @@ -74,7 +74,7 @@ public class Main { runAnalysis(stats, p); } catch (Exception e) { displayExecutionResult(stats, "FAILURE"); - showError("Error during SonarQube Scanner execution", e, cli.isDisplayStackTrace() || cli.isDebugEnabled()); + showError("Error during SonarQube Scanner execution", e, cli.isDebugEnabled()); exit.exit(Exit.ERROR); } @@ -95,10 +95,6 @@ public class Main { exit.exit(Exit.SUCCESS); } - if (cli.isDisplayStackTrace()) { - logger.info("Error stacktraces are turned on."); - } - runner = runnerFactory.create(p); } @@ -109,10 +105,6 @@ public class Main { logger.setDebugEnabled(true); logger.setDisplayStackTrace(true); } - - if (cli.isDisplayStackTrace()) { - logger.setDisplayStackTrace(true); - } } private void runAnalysis(Stats stats, Properties p) { @@ -128,13 +120,9 @@ public class Main { logger.info(SEPARATOR); } - private void showError(String message, Throwable e, boolean showStackTrace) { - if (showStackTrace) { + private void showError(String message, Throwable e, boolean debug) { + if (showStackTrace(e, debug)) { logger.error(message, e); - if (!cli.isDebugEnabled()) { - logger.error(""); - suggestDebugMode(); - } } else { logger.error(message); if (e != null) { @@ -147,13 +135,18 @@ public class Main { previousMsg = cause.getMessage(); } } + } + + if (!cli.isDebugEnabled()) { logger.error(""); - logger.error("To see the full stack trace of the errors, re-run SonarQube Scanner with the -e switch."); - if (!cli.isDebugEnabled()) { - suggestDebugMode(); - } + suggestDebugMode(); } } + + private static boolean showStackTrace(Throwable e, boolean debug) { + // class not available at compile time (loaded by isolated classloader) + return debug || "org.sonar.api.utils.MessageException".equals(e.getClass().getName()); + } private void suggestDebugMode() { logger.error("Re-run SonarQube Scanner using the -X switch to enable full debug logging."); |