[foreign-memaccess+abi] RFR: 8267989: Exceptions thrown during upcalls should be handled [v4]
Jorn Vernee
jvernee at openjdk.java.net
Wed Jun 2 12:41:20 UTC 2021
On Wed, 2 Jun 2021 12:26:20 GMT, Jorn Vernee <jvernee at openjdk.org> wrote:
>> Hi,
>>
>> This patch regularizes exception handling for exceptions thrown during upcalls. Exceptions thrown during upcalls are now always handled by printing out the stack trace and then calling `System::exit` (see the JBS issue for some motivation).
>>
>> I've added some documentation for the exception handling to `CLinker::upcallStub`, as well as a new public `int` constant in `CLinker` which is the error code that is passed to `System::exit`. The returned error code can also be configured by a system property, which for now is mostly useful for testing purposes to make sure we don't get a consistent false positive.
>>
>> Thanks,
>> Jorn
>
> Jorn Vernee has updated the pull request incrementally with one additional commit since the last revision:
>
> Eagerly check whether upcall target throws any exceptions.
>
> Adapt the existing exception check done by MemoryHandles to be more lenient towards bound method handles which might or might not throw an exception, and re-use that check.
src/java.base/share/classes/java/lang/invoke/VarHandles.java line 649:
> 647: }
> 648:
> 649: assert handle instanceof BoundMethodHandle : "Unecpexted handle type: " + handle;
Suggestion:
assert handle instanceof BoundMethodHandle : "Unexpected handle type: " + handle;
-------------
PR: https://git.openjdk.java.net/panama-foreign/pull/543
More information about the panama-dev
mailing list