I'm trying to use aprof in Hadoop with Java 1.8.0_121, but the VerifyError occurs as follows. Are there any methods to fix it? Thanks!
Exception in thread "main" java.lang.VerifyError: Stack map does not match the one at exception handler 60
Exception Details:
Location:
org/apache/hadoop/util/Shell$1.<init>(Lorg/apache/hadoop/util/Shell;Ljava/io/BufferedReader;Ljava/lang/StringBuffer;)V @60: astore
Reason:
Current frame's flags are not assignable to stack map frame's.
Current Frame:
bci: @38
flags: { flagThisUninit }
locals: { uninitializedThis, 'org/apache/hadoop/util/Shell', 'java/io/BufferedReader', 'java/lang/StringBuffer', 'com/devexperts/aprof/LocationStack' }
stack: { 'java/lang/Throwable' }
Stackmap Frame:
bci: @60
flags: { }
locals: { top, 'org/apache/hadoop/util/Shell', 'java/io/BufferedReader', 'java/lang/StringBuffer', 'com/devexperts/aprof/LocationStack' }
stack: { 'java/lang/Throwable' }
Bytecode:
0x0000000: 013a 042a 2bb5 0001 2a2c b500 022a 2db5
0x0000010: 0003 2a19 0459 c700 0a57 b800 5759 3a04
0x0000020: 111b bbb6 005b b700 0419 0459 c700 0a57
0x0000030: b800 5759 3a04 b600 5ea7 0018 3a05 1904
0x0000040: 59c7 000a 57b8 0057 593a 04b6 005e 1905
0x0000050: bfb1
Exception Handler Table:
bci [38, 41] => handler: 60
Stackmap Table:
full_frame(@32,{UninitializedThis,Object[#42],Object[#48],Object[#51],Object[#83]},{UninitializedThis,Object[#83]})
full_frame(@54,{Object[#14],Object[#42],Object[#48],Object[#51],Object[#83]},{Object[#83]})
full_frame(@60,{Top,Object[#42],Object[#48],Object[#51],Object[#83]},{Object[#96]})
full_frame(@75,{Top,Object[#42],Object[#48],Object[#51],Object[#83],Object[#96]},{Object[#83]})
full_frame(@81,{Object[#14],Object[#42],Object[#48],Object[#51],Object[#83]},{})
at sun.misc.Unsafe.allocateInstance(Native Method)
at com.devexperts.aprof.AProfSizeUtil.getObjectSizeByClass(AProfSizeUtil.java:106)
at com.devexperts.aprof.AProfOps.allocateSize(AProfOps.java:45)
at org.apache.hadoop.util.Shell.runCommand(Shell.java:506)