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