RFR: 8356942: invokeinterface Throws AbstractMethodError Instead of IncompatibleClassChangeError [v2]
David Holmes
dholmes at openjdk.org
Tue Jul 8 21:22:44 UTC 2025
On Tue, 8 Jul 2025 12:11:16 GMT, Coleen Phillimore <coleenp at openjdk.org> wrote:
>> David Holmes has updated the pull request incrementally with one additional commit since the last revision:
>>
>> Replaced new test by updating existing defmeth case that was missing the invokeinterface variants of the
>> test scenario. Also updated all tests therein to use `throwsExact` so that the wrong kind of ICCE does not
>> cause the test to pass by mistake.
>
> src/hotspot/share/oops/klassVtable.cpp line 1342:
>
>> 1340: if (target == nullptr || !target->is_public() || target->is_abstract()) {
>> 1341: // Entry does not resolve. Leave it empty for AbstractMethodError or other error.
>> 1342: if (!(target == nullptr) && !target->is_public()) {
>
> Since you're here, can you fix this line to be target != nullptr ? This part makes sense. The reason to have overpass methods is to participate in resolution and selection.
Fixed
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/26122#discussion_r2193461830
More information about the hotspot-dev
mailing list