Continue dumping other sections after an error in one section
diff --git a/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/raw/util/DexAnnotator.java b/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/raw/util/DexAnnotator.java
index 96ebe5c..3b3195d 100644
--- a/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/raw/util/DexAnnotator.java
+++ b/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/raw/util/DexAnnotator.java
@@ -171,8 +171,14 @@
try {
for (MapItem mapItem: mapItems) {
- SectionAnnotator annotator = annotators.get(mapItem.getType());
- annotator.annotateSection(this);
+ try {
+ SectionAnnotator annotator = annotators.get(mapItem.getType());
+ annotator.annotateSection(this);
+ } catch (Exception ex) {
+ System.err.println(String.format("There was an error while dumping the %s section",
+ ItemType.getItemTypeName(mapItem.getType())));
+ ex.printStackTrace(System.err);
+ }
}
} finally {
writeAnnotations(out, dexFile.getBuffer().getBuf(), dexFile.getBuffer().getBaseOffset());