Hang Shao
Hang Shao
> Are there java.lang.Class instances for both the Q and L types? Yes, one java.lang.Class instance for Q type and one java.lang.Class instance for L type.
> What is the behaviour of getClass()? If used on a Q instance do you get the Q class back, or is the L type always the user-facing class? `getClass()`...
> As an aside does Class.newInstance() work on Q types (presumably via the L class)? No, it does not work. It triggers `java.lang.InstantiationException`. > Are we linking the RAM classes...
Do we want to set the statics (constant pool, itables, invoke cache, etc.) on the L type J9Class or leave them to NULL ? There are a lot of places...
Noticed some counters are on the romClass (like `romMethodCount` for methods), which is not 0.
FYI @gacholio, Eric has taken over this PR and review is being done under https://github.com/eclipse-openj9/openj9/pull/15766
For the error regarding `Class#accessFlags()`, a new public API `public Set accessFlags()` is introduced in jdknext (Java 20), and OpenJ9 is missing the implementation. This is more like a jdknext...
> I will create a separate issue to track that. https://github.com/eclipse-openj9/openj9/issues/15933
Seems that there is a merge issue that result in redefinition of `unexpectedClasses` here: https://github.com/ibmruntimes/openj9-openjdk-jdk.valuetypes/blob/openj9/test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClassPrepare/classprep001/classprep001.cpp#L67-L73
Another one: https://openj9-jenkins.osuosl.org/job/Test_openjdk17_j9_extended.system_aarch64_mac_Nightly_testList_0/119/tapResults/