You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Refer to #13852 (comment). Reproducing the AssertionError in the comment highlights the incompatibility between MethodHandleNatives_getMemberVMInfo and MemberName.vminfoIsConsistent.
This error is seen while building jdk-next (JDK18).
Exception in thread "(unnamed thread)" java/lang/AssertionError: -1:jdk.internal.module.ModulePath.lambda$readExplodedModule$9(Path)Set/invokeVirtual
at java/lang/invoke/MemberName.vminfoIsConsistent (java.base@18/MemberName.java:350)
at java/lang/invoke/MemberName$Factory.resolve (java.base@18/MemberName.java:1099)
at java/lang/invoke/MemberName$Factory.resolveOrFail (java.base@18/MemberName.java:1114)
at java/lang/invoke/MethodHandles$Lookup.resolveOrFail (java.base@18/MethodHandles.java:3681)
at java/lang/invoke/MethodHandles$Lookup.linkMethodHandleConstant (java.base@18/MethodHandles.java:4175)
at java/lang/invoke/MethodHandleNatives.linkMethodHandleConstant (java.base@18/MethodHandleNatives.java:612)
at java/lang/invoke/MethodHandleResolver.sendResolveMethodHandle (java.base@18/MethodHandleResolver.java:267)
at java/lang/invoke/MethodHandleResolver.getCPMethodHandleAt (java.base@18/NativeMethod:4294967295)
at java/lang/invoke/MethodHandleResolver.getAdditionalBsmArg (java.base@18/MethodHandleResolver.java:384)
at java/lang/invoke/MethodHandleResolver.resolveInvokeDynamic (java.base@18/MethodHandleResolver.java:182)
at jdk/internal/module/ModulePath.readExplodedModule (java.base@18/ModulePath.java:689)
at jdk/internal/module/ModulePath.readModule (java.base@18/ModulePath.java:320)
at jdk/internal/module/ModulePath.scanDirectory (java.base@18/ModulePath.java:284)
at jdk/internal/module/ModulePath.scan (java.base@18/ModulePath.java:232)
at jdk/internal/module/ModulePath.scanNextEntry (java.base@18/ModulePath.java:190)
at jdk/internal/module/ModulePath.find (java.base@18/ModulePath.java:154)
at jdk/internal/module/SystemModuleFinders$1.lambda$find$0 (java.base@18/SystemModuleFinders.java:216)
The text was updated successfully, but these errors were encountered:
MemberName.vminfoIsConsistent is only used in an assertion to validate the
vmtarget and vmindex elements of MemberName. It relies on MHN.getMemberVMInfo
to retrieve the vmtarget and vmindex elements of MemberName.
For correct validation, MHN.getMemberVMInfo should return 0 for vmindex when
the vTableIndex is 0 and ref kind is invokevirtual or invokeinterface.
Otherwise, it should return -1 for vmindex. MHN.getMemberVMInfo has been
updated to perform this behaviour. This in return fixes the behaviour of
MemberName.vminfoIsConsistent.
Closes: eclipse-openj9#13877
Co-authored-by: Jack Lu <Jack.S.Lu@ibm.com>
Signed-off-by: Babneet Singh <sbabneet@ca.ibm.com>
MemberName.vminfoIsConsistent is only used in an assertion to validate the
vmtarget and vmindex elements of MemberName. It relies on MHN.getMemberVMInfo
to retrieve the vmtarget and vmindex elements of MemberName.
For correct validation, MHN.getMemberVMInfo should return 0 for vmindex when
the vTableIndex is 0 and ref kind is invokevirtual or invokeinterface.
Otherwise, it should return -1 for vmindex. MHN.getMemberVMInfo has been
updated to perform this behaviour. This in return fixes the behaviour of
MemberName.vminfoIsConsistent.
Closes: eclipse-openj9/openj9#13877
Co-authored-by: Jack Lu <Jack.S.Lu@ibm.com>
Signed-off-by: Babneet Singh <sbabneet@ca.ibm.com>
Refer to #13852 (comment). Reproducing the
AssertionError
in the comment highlights the incompatibility betweenMethodHandleNatives_getMemberVMInfo
andMemberName.vminfoIsConsistent
.This error is seen while building jdk-next (JDK18).
Related: #13852
MethodHandleNatives_getMemberVMInfo
openj9/runtime/jcl/common/java_lang_invoke_MethodHandleNatives.cpp
Line 1472 in 92e2e86
MemberName.vminfoIsConsistent
https://github.com/ibmruntimes/openj9-openjdk-jdk/blob/a3abf3d6e8a2600f6ec7b73936f57d6e5442428e/src/java.base/share/classes/java/lang/invoke/MemberName.java#L338
AssertionError
The text was updated successfully, but these errors were encountered: