I'm using proguard 5.2.1 with jdk1.7.0_80 and got that problem:
Exception in thread "AWT-EventQueue-0" java.lang.VerifyError: Inconsistent stack
map frames at branch target 70
Exception Details:
Location:
myproduct/aic.<init>(Lmyproduct/agw;Lmyproduct/aic$a;)V @70: new
Reason:
Current frame's flags are not assignable to stack map frame's.
Current Frame:
bci: @12
flags: { flagThisUninit }
locals: { uninitializedThis, 'myproduct/aic$a', 'myproduct/aic$a' }
stack: { uninitializedThis, 'myproduct/agw', integer }
Stackmap Frame:
bci: @70
flags: { }
locals: { }
stack: { uninitializedThis, 'myproduct/agw' }
Bytecode:
0000000: 2a2b 2c4c b200 262b b600 422e aa00 0000
0000010: 0000 003a 0000 0001 0000 0003 0000 001c
0000020: 0000 0026 0000 0030 bb00 0a59 b700 33a7
0000030: 0021 bb00 0c59 b700 34a7 0017 bb00 0d59
0000040: b700 36a7 000d bb00 1f59 1204 b700 46bf
0000050: b700 40b1
Stackmap Table:
full_frame(@40,{UninitializedThis},{UninitializedThis,Object[#23]})
full_frame(@50,{UninitializedThis},{UninitializedThis,Object[#23]})
full_frame(@60,{UninitializedThis},{UninitializedThis,Object[#23]})
full_frame(@70,{},{UninitializedThis,Object[#23]})
full_frame(@80,{UninitializedThis},{UninitializedThis,Object[#23],Object[#11]
})</init>
at myproduct.aha.a(SourceFile:202)
at myproduct.aha.a(SourceFile:82)
at myproduct.zj.c(SourceFile:62)
at myproduct.zz.actionPerformed(SourceFile:96)
Thanks for your report. ProGuard's preverification seems to fail on some code in the constructor of myproduct.aic. You can probably see the same problem more clearly without obfuscation (-dontobfuscate). If you could attach or mail me a small sample project that allows me to reproduce the issue, I'll look into it.
Hi Eric,
I'm back from vacation. So I tried building without obfuscation (-dontobfuscate). Now I can't even start the application produced by proguard. It says:
Exception in thread "AWT-EventQueue-0" java.lang.ClassFormatError: LVTT entry for 'guiPlatformScriptSelected' in class file com/cwsoft/testframework/gui/view/explorer/ExplorerPanel does not match any LVT entry
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
guiPlatformScriptSelected is a variable declared in a method of the ExplorerPanel class:
GuiPlatformScript<? extends PlatformScript> guiPlatformScriptSelected = (GuiPlatformScript<? extends PlatformScript>)guiTestScenarioStepSelected;
Denis
Any news on this problem Eric ?
I can't do much without a small sample project that allows me to reproduce the problem... The original problem is a fundamental issue in the processed bytecode of myproduct.aic. The second problem is probably unrelated -- occasionally the optimization step can't properly update the local variable type table when optimizing the code, but this is only debug information that the obfuscation step generally removes.
I have another example of what looks like this same bug, at https://travis-ci.org/Pr0methean/BetterRandom/jobs/274079470 (this updated link shows it's still happening in 5.3.3).
Last edit: seahen 2017-09-11