diff options
author | 2017-11-30 08:55:49 -0800 | |
---|---|---|
committer | 2017-11-30 08:58:15 -0800 | |
commit | 39c2a36bf8f502d55addd58e9e97bf2ebb46e4b0 (patch) | |
tree | d03277d06ea07cac689e88502b81949c5b6630c7 /src/tools/android/java/com/google/devtools/build/android/ResourceProcessorBusyBox.java | |
parent | 38bd6d7e205df20bc94c8c7359cee81e500cdd16 (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.java | 21 |
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); } } |