RFR: 8066859: java/lang/ref/OOMEInReferenceHandler.java failed with java.lang.Exception: Reference Handler thread died

David Holmes dholmes at openjdk.org
Mon Jul 11 15:02:12 UTC 2022


On Mon, 11 Jul 2022 04:16:44 GMT, David Holmes <dholmes at openjdk.org> wrote:

>> 8066859 : java/lang/ref/OOMEInReferenceHandler.java failed with java.lang.Exception: Reference Handler thread died
>
> src/java.base/share/classes/java/util/concurrent/locks/LockSupport.java line 463:
> 
>> 461:      *  Preallocated exceptions thrown if acquiring or releasing locks
>> 462:      *  when OutOfMemory.
>> 463:      */
> 
> I don't see why this should be necessary. IMSE is thrown before any state changes occur and so it is is fine if the IMSE is replaced by OOME.
> 
> Even IE should be safe at the points it is thrown.
> 
> Also in both cases you want to see a full and proper stacktrace.

Consider this another way, any place you have a `throw x` it must be safe to propagate that exception. It doesn't matter if that is actually `x` or an OOME caused by creating `x`.

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

PR: https://git.openjdk.org/jdk/pull/9427


More information about the core-libs-dev mailing list