RFR: JDK-8303742: CompletableFuture.orTimeout leaks if the future completes exceptionally [v4]

Andrey Turbanov aturbanov at openjdk.org
Fri Mar 17 09:01:59 UTC 2023


On Fri, 17 Mar 2023 08:59:37 GMT, Viktor Klang <duke at openjdk.org> wrote:

>> Addresses the situation where exceptional completion of `orTimeout`:ed CompletableFutures wouldn't cancel the timeout task which could lead to memory leaks if done frequently enough with long enough timeout durations.
>> 
>> Fix discussed with @DougLea
>
> Viktor Klang has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Adding a test for completeOnTimeout cancelling tasks when completeExceptionally

test/jdk/java/util/concurrent/CompletableFuture/CompletableFutureOrTimeoutExceptionallyTest.java line 44:

> 42:     void testOrTimeoutWithCompleteExceptionallyDoesNotLeak() {
> 43:         var count = 0L;
> 44:         while(count < 2_000_000) {

Nit
Suggestion:

        while (count < 2_000_000) {

test/jdk/java/util/concurrent/CompletableFuture/CompletableFutureOrTimeoutExceptionallyTest.java line 56:

> 54:     void testCompleteOnTimeoutWithCompleteExceptionallyDoesNotLeak() {
> 55:         var count = 0L;
> 56:         while(count < 2_000_000) {

Nit
Suggestion:

        while (count < 2_000_000) {

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

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


More information about the core-libs-dev mailing list