RFR: 8272096: Exceptions::new_exception can return wrong exception [v3]

David Holmes dholmes at openjdk.org
Mon Jul 18 23:26:00 UTC 2022


On Fri, 15 Jul 2022 15:09:07 GMT, Coleen Phillimore <coleenp at openjdk.org> wrote:

>> I added an assert if Exceptions::new_exception is called with a pending exception and fixed the places where it is called with a pending exception.   That leaves only two possible exceptions. I left the product mode code in to return the pending exception if allocating the exception message doesn't thrown OOM because it was always there and seems dubious.  Tested with jck tests and tier1-7.
>
> Coleen Phillimore has updated the pull request incrementally with one additional commit since the last revision:
> 
>   second get_user_name_slow call should CHECK_NULL too.

Thumbs up from me now - sorry it took me a while to "get it".

Thanks.

Ah now I see sorry. new_exception would have ignored the requested exception and thrown the pending truncation exception instead. Now it is much more clear that, that is what happens.

src/hotspot/share/utilities/exceptions.cpp line 361:

> 359:       thread->clear_pending_exception();
> 360:       ResourceMark rm(thread);
> 361:       assert(incoming_exception.is_null(), "Pending exception while throwing %s %s", name->as_C_string(), message);

You may as well leave this as `false`

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

Marked as reviewed by dholmes (Reviewer).

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


More information about the hotspot-dev mailing list