-
Bug
-
Resolution: Cannot Reproduce
-
P3
-
None
-
8u25
-
x86_64
-
linux_ubuntu
FULL PRODUCT VERSION :
java version "1.8.0_25"
Java(TM) SE Runtime Environment (build 1.8.0_25-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)
FULL OS VERSION :
3.13.0-29-generic #53~precise1-Ubuntu SMP Wed Jun 4 22:06:25 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
A DESCRIPTION OF THE PROBLEM :
When experimenting with bytecode generation we often stumble about reports verify errors like this one:
Expecting a stackmap frame at branch target 9
Exception Details:
Location:
org/codehaus/groovy/transform/tailrec/TailRecursiveASTTransformation.getMetaClass()Lgroovy/lang/MetaClass; @5: ifnull
Reason:
Expected stackmap frame at this location.
Bytecode:
0x0000000: 2ab4 0030 59c6 0004 b057 2a59 b600 2eb5
0x0000010: 0030 2ab4 0030 b0
While a bytecode error is correctly recognized, the error report is wrong. The class has the version 50, which means stackmap frames are optional, still the verifier seems to expect them being used. But not only is the reason wrong, the location is wrong as well. In this case the error was about trying to pop an operand of an empty stack in a different method instead.
THE PROBLEM WAS REPRODUCIBLE WITH -Xint FLAG: Did not try
THE PROBLEM WAS REPRODUCIBLE WITH -server FLAG: Did not try
REPRODUCIBILITY :
This bug can be reproduced always.
CUSTOMER SUBMITTED WORKAROUND :
ignore the error report and use the asm lib to find the bytecode error
java version "1.8.0_25"
Java(TM) SE Runtime Environment (build 1.8.0_25-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)
FULL OS VERSION :
3.13.0-29-generic #53~precise1-Ubuntu SMP Wed Jun 4 22:06:25 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
A DESCRIPTION OF THE PROBLEM :
When experimenting with bytecode generation we often stumble about reports verify errors like this one:
Expecting a stackmap frame at branch target 9
Exception Details:
Location:
org/codehaus/groovy/transform/tailrec/TailRecursiveASTTransformation.getMetaClass()Lgroovy/lang/MetaClass; @5: ifnull
Reason:
Expected stackmap frame at this location.
Bytecode:
0x0000000: 2ab4 0030 59c6 0004 b057 2a59 b600 2eb5
0x0000010: 0030 2ab4 0030 b0
While a bytecode error is correctly recognized, the error report is wrong. The class has the version 50, which means stackmap frames are optional, still the verifier seems to expect them being used. But not only is the reason wrong, the location is wrong as well. In this case the error was about trying to pop an operand of an empty stack in a different method instead.
THE PROBLEM WAS REPRODUCIBLE WITH -Xint FLAG: Did not try
THE PROBLEM WAS REPRODUCIBLE WITH -server FLAG: Did not try
REPRODUCIBILITY :
This bug can be reproduced always.
CUSTOMER SUBMITTED WORKAROUND :
ignore the error report and use the asm lib to find the bytecode error