Add initial scaffolding for Java 17 classfiles#600
Conversation
97bbd6f to
60dcdb7
Compare
|
Hi @cyrille-artho , whenever you have a moment, take a quick look at this pr . |
|
Hi Hitrik, |
Hi @Mahmoud-Khawaja, thanks for pointing this out! I was working strictly off the master branch and completely missed the awesome work already merged into the java-17 branch via #520. That makes total sense about the MJI stub not being needed now that the bytecode parsing and RecordComponentInfo are already wired up. I’ll go ahead and close this PR so I don't clutter the repo. I'm going to pull the java-17 branch locally to explore the current state. It looks like the next big hurdles will be tackling PermittedSubclasses for Sealed Classes, or figuring out the invokedynamic / ObjectMethods.bootstrap routing for those implicit record methods you mentioned. Really appreciate the heads-up and the guidance! |
**Fixes #599 **
Description
This draft PR implements the initial scaffolding outlined in the linked issue to unblock JPF from reading Java 17 binaries.
Changes Made
ClassFile.java: BumpedMAX_SUPPORTED_VERSIONto61and registeredRecordandPermittedSubclassesattributes.java.lang.Record.java: Added a base MJI model stub so the engine does not crash during class resolution when encountering a Java Record.FileVersionTest.java: UpdatedtestUnsupportedVersionJava17totestSupportedVersionJava17, verifying that the engine now successfully accepts the version 61 classfile.Testing
Ran
./gradlew testand all tests pass, including the newly updatedFileVersionTest.