RFR: 8318586: Explicitly handle upcall stub allocation failure [v3]

Maurizio Cimadamore mcimadamore at openjdk.org
Fri Oct 27 08:52:33 UTC 2023


On Fri, 27 Oct 2023 04:54:04 GMT, David Holmes <dholmes at openjdk.org> wrote:

>> src/java.base/share/classes/java/lang/foreign/Linker.java line 532:
>> 
>>> 530:      * @throws IllegalArgumentException if an invalid combination of linker options is given.
>>> 531:      * @throws IllegalCallerException If the caller is in a module that does not have native access enabled.
>>> 532:      * @throws OutOfMemoryError if the runtime does not have the memory needed to create the downcall handle.
>> 
>> Suggestions for the phrasing here are welcome. I think we should use something that works for both downcall handles and upcall stubs though.
>
> OOME is pretty much understood to be possible anywhere, given it is a VirtualMachineError. We often do not document it explicitly. The risk with documenting it is that it gives the impression that other methods, which don't document it, can never throw it. A rough grep for `@throws OutOfMemoryError` reveals only 15 classes in java.base that explicitly document this.

Taking inspiration from other methods that throw this exception, maybe something like this might work:

`if the downcall method handle cannot be allocated by the Linker`

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

PR Review Comment: https://git.openjdk.org/jdk/pull/16311#discussion_r1374268730


More information about the hotspot-compiler-dev mailing list