Merge "Fix 'Exception in thread "main" java.lang.AbstractMethodError:'"
diff --git a/lib/proguard.jar b/lib/proguard.jar
index a948c89..43faf48 100644
--- a/lib/proguard.jar
+++ b/lib/proguard.jar
Binary files differ
diff --git a/lib/proguardgui.jar b/lib/proguardgui.jar
index b876e89..e2d9439 100644
--- a/lib/proguardgui.jar
+++ b/lib/proguardgui.jar
Binary files differ
diff --git a/lib/retrace.jar b/lib/retrace.jar
index c00fbe7..94c8c6b 100644
--- a/lib/retrace.jar
+++ b/lib/retrace.jar
Binary files differ
diff --git a/src/proguard/obfuscate/MappingPrinter.java b/src/proguard/obfuscate/MappingPrinter.java
index aab779f..537a345 100644
--- a/src/proguard/obfuscate/MappingPrinter.java
+++ b/src/proguard/obfuscate/MappingPrinter.java
@@ -140,7 +140,19 @@
public void visitLineNumberTableAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, LineNumberTableAttribute lineNumberTableAttribute)
{
- ps.print(lineNumberTableAttribute.getLowestLineNumber() + ":" +
- lineNumberTableAttribute.getHighestLineNumber() + ":");
+ // ps.print(lineNumberTableAttribute.getLowestLineNumber() + ":" +
+ // lineNumberTableAttribute.getHighestLineNumber() + ":");
+ // With the above statement,
+ // OpenJDK 8 (openjdk version "1.8.0_45-internal") crashed with:
+ // Exception in thread "main" java.lang.AbstractMethodError:
+ // java.lang.Exception.getMessage()Ljava/lang/String;
+ // at proguard.ProGuard.main(ProGuard.java:519)
+ //
+ // Using temporary variables fixed the crash.
+ // See bug 26274804.
+ int low,high;
+ low = lineNumberTableAttribute.getLowestLineNumber();
+ high = lineNumberTableAttribute.getHighestLineNumber();
+ ps.print(low + ":" + high + ":");
}
}