From 8054bcf9cccdd5e353c67de9a542a774ba2ba048 Mon Sep 17 00:00:00 2001 From: Googler Date: Wed, 22 Jun 2016 21:34:39 +0000 Subject: Change the BufferedReader to BufferedInputStream, as the UTF-8 bom crashes the BufferedReader. Add the errors a suppressed exceptions which is more useful for debugging. -- MOS_MIGRATED_REVID=125609925 --- .../java/com/google/devtools/build/android/DataResourceXml.java | 5 ++++- .../java/com/google/devtools/build/android/ParsedAndroidData.java | 6 +++--- 2 files changed, 7 insertions(+), 4 deletions(-) (limited to 'src/tools') diff --git a/src/tools/android/java/com/google/devtools/build/android/DataResourceXml.java b/src/tools/android/java/com/google/devtools/build/android/DataResourceXml.java index dfc0496476..d1cc857dfa 100644 --- a/src/tools/android/java/com/google/devtools/build/android/DataResourceXml.java +++ b/src/tools/android/java/com/google/devtools/build/android/DataResourceXml.java @@ -32,6 +32,7 @@ import com.google.protobuf.InvalidProtocolBufferException; import com.android.resources.ResourceType; +import java.io.BufferedInputStream; import java.io.IOException; import java.io.OutputStream; import java.nio.charset.StandardCharsets; @@ -78,7 +79,9 @@ public class DataResourceXml implements DataResource { KeyValueConsumer combiningConsumer) throws XMLStreamException, FactoryConfigurationError, IOException { XMLEventReader eventReader = - xmlInputFactory.createXMLEventReader(Files.newBufferedReader(path, StandardCharsets.UTF_8)); + xmlInputFactory.createXMLEventReader( + new BufferedInputStream(Files.newInputStream(path)), + StandardCharsets.UTF_8.toString()); try { // TODO(corysmith): Make the xml parsing more readable. while (XmlResourceValues.moveToResources(eventReader)) { diff --git a/src/tools/android/java/com/google/devtools/build/android/ParsedAndroidData.java b/src/tools/android/java/com/google/devtools/build/android/ParsedAndroidData.java index 4e78428b88..15c551f6a5 100644 --- a/src/tools/android/java/com/google/devtools/build/android/ParsedAndroidData.java +++ b/src/tools/android/java/com/google/devtools/build/android/ParsedAndroidData.java @@ -85,11 +85,11 @@ public class ParsedAndroidData { private void checkForErrors() throws MergingException { if (!errors.isEmpty()) { - StringBuilder messageBuilder = new StringBuilder(); + MergingException mergingException = new MergingException("Parse Error(s)"); for (Exception e : errors) { - messageBuilder.append("\n").append(e.getMessage()); + mergingException.addSuppressed(e); } - throw new MergingException(messageBuilder.toString()); + throw mergingException; } } -- cgit v1.2.3