This is occuring on a Mac when running under Oracle's Java 1.8.0_101 obfusticated with Proguard 5.3.
Error reported on console:
java.lang.VerifyError: Inconsistent stackmap frames at branch target 80
Exception Details:
Location:
com/arciem/app/AbstractApplication.a(Z)Z @80: goto
Reason:
Type 'com/arciem/app/aq' (current frame, locals[1]) is not assignable to integer (stack map, locals[1])
Current Frame:
bci: @19
flags: { }
locals: { 'com/arciem/app/AbstractApplication', 'com/arciem/app/aq' }
stack: { 'com/arciem/app/aq' }
Stackmap Frame:
bci: @80
flags: { }
locals: { 'com/arciem/app/AbstractApplication', integer }
stack: { }
Bytecode:
0x0000000: 2ab4 005d b900 e401 009a 004a 2a03 b600
0x0000010: 7859 4cc6 003d 2bb6 008e 594d c600 292c
0x0000020: b600 9e59 4dc6 0012 2c01 4c59 4c04 01b6
0x0000030: 00a6 9a00 1003 ac2a b400 5d2b b900 e702
0x0000040: 0057 a7ff be2a b400 5d2b b900 e702 0057
0x0000050: a7ff b02a b600 80b6 00d7 a700 0457 04ac
0x0000060:
Exception Handler Table:
bci [83, 90] => handler: 93
Stackmap Table:
same_frame(@0)
append_frame(@55,Object[#39])
chop_frame(@66,1)
append_frame(@69,Object[#39])
chop_frame(@80,1)
same_frame(@83)
full_frame(@93,{},{Object[#84]})
same_frame(@94)
at a.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
java.lang.VerifyError: Inconsistent stackmap frames at branch target 80
Exception Details:
Location:
com/arciem/app/AbstractApplication.a(Z)Z @80: goto
Reason:
Type 'com/arciem/app/aq' (current frame, locals[1]) is not assignable to integer (stack map, locals[1])
Current Frame:
bci: @19
flags: { }
locals: { 'com/arciem/app/AbstractApplication', 'com/arciem/app/aq' }
stack: { 'com/arciem/app/aq' }
Stackmap Frame:
bci: @80
flags: { }
locals: { 'com/arciem/app/AbstractApplication', integer }
stack: { }
Bytecode:
0x0000000: 2ab4 005d b900 e401 009a 004a 2a03 b600
0x0000010: 7859 4cc6 003d 2bb6 008e 594d c600 292c
0x0000020: b600 9e59 4dc6 0012 2c01 4c59 4c04 01b6
0x0000030: 00a6 9a00 1003 ac2a b400 5d2b b900 e702
0x0000040: 0057 a7ff be2a b400 5d2b b900 e702 0057
0x0000050: a7ff b02a b600 80b6 00d7 a700 0457 04ac
0x0000060:
Exception Handler Table:
bci [83, 90] => handler: 93
Stackmap Table:
same_frame(@0)
append_frame(@55,Object[#39])
chop_frame(@66,1)
append_frame(@69,Object[#39])
chop_frame(@80,1)
same_frame(@83)
full_frame(@93,{},{Object[#84]})
same_frame(@94)
at d.uncaughtException(Unknown Source)
at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1057)
at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1052)
at java.awt.EventDispatchThread.processException(EventDispatchThread.java:223)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:215)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Exception: java.lang.VerifyError thrown from the UncaughtExceptionHandler in thread "AWT-EventQueue-0"
Ant taskdef:
<taskdef name="proguard" classname="proguard.ant.ProGuardTask"/>
<proguard defaultpackage=""
skipnonpubliclibraryclasses="false"
overloadaggressively="false"
ignorewarnings="true"
printseeds="${obfus.seeds.file}"
printmapping="${obfus.map.file}"
printusage="${obfus.usage.file}"
note="false"
shrink="true"
optimize="true"
obfuscate="true"
>
<!-- Specify the input jars, output jars, and library jars. -->
<injar file="${jarfile.unsigned.no-obfus}"/>
<outjar file="${jarfile.unsigned.obfus}"/>
<libraryjar refid="obfus.jars"/>
<!-- Preserve the application entry point -->
<keepclasseswithmembers name="FlyingLogic" access="public">
<method access="public static"
type="void"
name="main"
parameters="java.lang.String[]"/>
</keepclasseswithmembers>
<!-- Preserve all annotations. -->
<keepattribute name="*Annotation*"/>
<!-- Preserve all native method names and the names of their classes. -->
<keepclasseswithmembernames>
<method access="native"/>
</keepclasseswithmembernames>
... mare more exceptions to obfustication here ...
</proguard>
</taskdef>