aboutsummaryrefslogtreecommitdiffstats
path: root/src/main
diff options
context:
space:
mode:
authorDuarte Meneses <duarte.meneses@sonarsource.com>2016-09-15 16:24:36 +0200
committerDuarte Meneses <duarte.meneses@sonarsource.com>2016-09-16 13:36:49 +0200
commit1d6a79e5221587c98f451b233b99eeea7d66f4d7 (patch)
tree6b7c5260bd14d3bcce06cc7fdc44eedd18d9caf5 /src/main
parent12c373fad66da9ccb9cfb2ce7e3c5d2de4f60fe2 (diff)
downloadsonar-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.java12
-rw-r--r--src/main/java/org/sonarsource/scanner/cli/Main.java31
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.");