aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/tools/android/java/com/google/devtools/build/android/ResourceProcessorBusyBox.java
diff options
context:
space:
mode:
authorGravatar corysmith <corysmith@google.com>2017-11-30 08:55:49 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2017-11-30 08:58:15 -0800
commit39c2a36bf8f502d55addd58e9e97bf2ebb46e4b0 (patch)
treed03277d06ea07cac689e88502b81949c5b6630c7 /src/tools/android/java/com/google/devtools/build/android/ResourceProcessorBusyBox.java
parent38bd6d7e205df20bc94c8c7359cee81e500cdd16 (diff)
Improve the error messaging by suppressing stack traces for expected errors.
RELNOTES: None PiperOrigin-RevId: 177460834
Diffstat (limited to 'src/tools/android/java/com/google/devtools/build/android/ResourceProcessorBusyBox.java')
-rw-r--r--src/tools/android/java/com/google/devtools/build/android/ResourceProcessorBusyBox.java21
1 files changed, 20 insertions, 1 deletions
diff --git a/src/tools/android/java/com/google/devtools/build/android/ResourceProcessorBusyBox.java b/src/tools/android/java/com/google/devtools/build/android/ResourceProcessorBusyBox.java
index f1da34a520..a99da9b931 100644
--- a/src/tools/android/java/com/google/devtools/build/android/ResourceProcessorBusyBox.java
+++ b/src/tools/android/java/com/google/devtools/build/android/ResourceProcessorBusyBox.java
@@ -14,6 +14,8 @@
package com.google.devtools.build.android;
+import com.google.devtools.build.android.AndroidResourceMerger.MergingException;
+import com.google.devtools.build.android.aapt2.Aapt2Exception;
import com.google.devtools.common.options.EnumConverter;
import com.google.devtools.common.options.Option;
import com.google.devtools.common.options.OptionDocumentationCategory;
@@ -21,7 +23,10 @@ import com.google.devtools.common.options.OptionEffectTag;
import com.google.devtools.common.options.OptionsBase;
import com.google.devtools.common.options.OptionsParser;
import com.google.devtools.common.options.ShellQuotedParamsFilePreProcessor;
+import java.io.IOException;
import java.nio.file.FileSystems;
+import java.util.Arrays;
+import java.util.logging.Logger;
/**
* Provides an entry point for the resource processing stages.
@@ -144,6 +149,8 @@ public class ResourceProcessorBusyBox {
abstract void call(String[] args) throws Exception;
}
+ private static final Logger logger = Logger.getLogger(ResourceProcessorBusyBox.class.getName());
+
/** Converter for the Tool enum. */
public static final class ToolConverter extends EnumConverter<Tool> {
@@ -177,6 +184,18 @@ public class ResourceProcessorBusyBox {
new ShellQuotedParamsFilePreProcessor(FileSystems.getDefault()));
optionsParser.parse(args);
Options options = optionsParser.getOptions(Options.class);
- options.tool.call(optionsParser.getResidue().toArray(new String[0]));
+ try {
+ options.tool.call(optionsParser.getResidue().toArray(new String[0]));
+ } catch (MergingException | IOException e) {
+ logger.severe(e.getMessage());
+ logSuppressedAndExit(e);
+ } catch (Aapt2Exception e) {
+ logSuppressedAndExit(e);
+ }
+ }
+
+ private static void logSuppressedAndExit(Throwable e) {
+ Arrays.stream(e.getSuppressed()).map(Throwable::getMessage).forEach(logger::severe);
+ System.exit(1);
}
}