RFR: 8299183: Invokers.checkExactType passes parameters to create WMTE in opposite order
Mandy Chung
mchung at openjdk.org
Fri Jan 6 21:17:52 UTC 2023
On Fri, 6 Jan 2023 01:05:40 GMT, Jaikiran Pai <jpai at openjdk.org> wrote:
>> Trivial fix. Fix `Invokers.checkExactType` to call `newWrongMethodTypeException(actual, expected)` with parameters in right order.
>
> Hello Mandy, this looks good to me. The copyright year on the file will need an update.
>
> There's another call to this `newWrongMethodTypeException` method on line 515 and I am guessing that one is already passing the params in the correct order. If I go by that same logic, then there appears to be a direct construction of `WrongMethodTypeException` on line 497 and I suspect the `String` passed to it is perhaps using the wrong order? It currently says:
>
>
> if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
> throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
> + ad.symbolicMethodTypeExact);
> }
>
> Should it instead say:
>
> if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
> throw new WrongMethodTypeException("expected " + ad.symbolicMethodTypeExact + " but found "
> + handle.accessModeType(ad.type));
> }
@jaikiran good observation.
"expected" and "actual" parameters are confusing. "expected" is ambiguous and it could refer to handle's method type or symbolic type descriptor. I decide to rename the parameters and the exception message for clarity.
-------------
PR: https://git.openjdk.org/jdk/pull/11870
More information about the core-libs-dev
mailing list