RFR: 8333748: javap crash - Fatal error: Unmatched bit position 0x2 for location CLASS [v2]
Chen Liang
liach at openjdk.org
Fri Jun 14 17:02:40 UTC 2024
> Currently, javap crashes for class files that have set non-zero values for undefined access flag bits, as `java.lang.reflect.AccessFlag.maskToAccessFlag` and `java.lang.classfile.AccessFlags.flags` fail. In contrast, the JVMS, though asking for these bits to be set to 0, requires VM to proceed and ignore these bits. javap should emulate the VM behavior and proceed rendering, ignoring these undefined bits.
>
> In addition, a few bytecode generation utilities in the JDK set unused bits, such as in `java.lang.invoke.MethodHandleImpl.BindCaller#generateInvokerTemplate` and `java.lang.invoke.GenerateJLIClassesHelper#generateCodeBytesForLFs`. Those can be updated in a later cleanup.
Chen Liang has updated the pull request incrementally with two additional commits since the last revision:
- I am a dumbass
- Retain strict flag for Method, even though it's obsolete
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/19708/files
- new: https://git.openjdk.org/jdk/pull/19708/files/1cf092f4..84506788
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=19708&range=01
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=19708&range=00-01
Stats: 4 lines in 1 file changed: 4 ins; 0 del; 0 mod
Patch: https://git.openjdk.org/jdk/pull/19708.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/19708/head:pull/19708
PR: https://git.openjdk.org/jdk/pull/19708
More information about the core-libs-dev
mailing list