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 + ":");
     }
 }