RFR: 8267421: j.l.constant.DirectMethodHandleDesc.Kind.valueOf(int) implementation doesn't conform to the spec regarding REF_invokeInterface handling [v2]

Mandy Chung mchung at openjdk.java.net
Fri Jun 11 02:52:50 UTC 2021


On Thu, 10 Jun 2021 23:23:23 GMT, Vicente Romero <vromero at openjdk.org> wrote:

>> test/jdk/java/lang/constant/MethodHandleDescTest.java line 362:
>> 
>>> 360:     public void testKind() {
>>> 361:         for (Kind k : Kind.values()) {
>>> 362:             assertEquals(Kind.valueOf(k.refKind), Kind.valueOf(k.refKind, k.refKind == MethodHandleInfo.REF_invokeInterface));
>> 
>> Looks like the test does not verify the cases specified by `valueOf(int refKind, boolean isInterface)`.  
>> i.e. For most values of refKind, there is an exact match regardless of the value of isInterface except `REF_invokeStatic` and `REF_invokeSpecial`.
>> 
>> Do you mind adding those cases?
>
> @mlchung I have updated the PR with another commit, thanks for your comments

It may be better to create a new JBS issue to fix this bug as it may take more time to investigate.

-------------

PR: https://git.openjdk.java.net/jdk/pull/4416


More information about the core-libs-dev mailing list