Introduce a constantPool cache - #22907
Conversation
|
jenkisn test sanity alinux64 jdk21 |
|
jenkins test sanity alinux64 jdk21 |
|
investigating the test failures |
7dd6b83 to
1975eef
Compare
| @@ -83,6 +84,15 @@ Java_java_lang_Access_getConstantPool(JNIEnv *env, jclass unusedClass, jobject c | |||
| /* and set the private constantPoolOop member */ | |||
| constantPoolOop = JCL_CACHE_GET(env, FID_sun_reflect_ConstantPool_constantPoolOop); | |||
| (*env)->SetObjectField(env, constantPool, constantPoolOop, classToIntrospect); | |||
There was a problem hiding this comment.
Would this not be more efficient done internally? You could avoid multiple trips through enter/exit VM.
b617406 to
38314f3
Compare
d451588 to
0ba1e51
Compare
|
jenkins test sanity alinux64 jdk21 |
|
jenkins test sanity win jdk8 |
|
jenkins test sanity.functional win jdk8 |
Cache the constantPool object off the j.l.Class after the first invocation of Access::getConstantPool. Given that the ConstantPool instance is associated with a single version of the class, as soon as the class is redefined the cache is invalidated and disabled. Signed-off-by: tajila <atobia@ca.ibm.com>
|
jenkins test sanity.functional win jdk8 |
|
jenkins test sanity,extended.functional,extended.openjdk alinux64 jdk21 |
|
jenkins test sanity xlinux jdk17 |
|
None of the failures are related to these changes |
|
The failure here on jdk21 seems more than a little similar to the failure in ibmruntimes/openj9-openjdk-jdk21#385: https://openj9-jenkins.osuosl.org/job/Test_openjdk21_j9_sanity.openjdk_aarch64_mac_Personal_testList_0/245/console |
|
Testing for ibmruntimes/openj9-openjdk-jdk17#565 is failing likewise; see https://openj9-jenkins.osuosl.org/job/Test_openjdk17_j9_sanity.openjdk_ppc64le_linux_Personal_testList_0/67/consoleText |
|
The failure is new: https://openj9-jenkins.osuosl.org/job/PullRequest-OpenJDK21/138 passed (without this change). |
|
Reverted via #22971 |
Cache the constantPool object off the j.l.Class after the first
invocation of Access::getConstantPool. Given that the ConstantPool
instance is associated with a single version of the class, as soon as
the class is redefined the cache is invalidated and disabled.