From fd1444f32276a047053d394b0706098ebb82edf0 Mon Sep 17 00:00:00 2001 From: Peter Gromov Date: Mon, 22 Jun 2020 11:33:29 +0200 Subject: [PATCH] NonBlockingReadActionTest: fix a leak via Disposer GitOrigin-RevId: 62902169359256487432821c807f20f0f5947a79 --- .../impl/NonBlockingReadActionTest.java | 25 +++++++++++-------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/platform/platform-tests/testSrc/com/intellij/openapi/application/impl/NonBlockingReadActionTest.java b/platform/platform-tests/testSrc/com/intellij/openapi/application/impl/NonBlockingReadActionTest.java index cccf56e11e09..744b273cc0c0 100644 --- a/platform/platform-tests/testSrc/com/intellij/openapi/application/impl/NonBlockingReadActionTest.java +++ b/platform/platform-tests/testSrc/com/intellij/openapi/application/impl/NonBlockingReadActionTest.java @@ -463,17 +463,22 @@ public class NonBlockingReadActionTest extends LightPlatformTestCase { for (int i = 0; i < 2; i++) { Disposable[] parents = {Disposer.newDisposable("1"), Disposer.newDisposable("2")}; Disposer.dispose(parents[i]); - NonBlockingReadAction nbra = ReadAction - .nonBlocking(() -> { - fail(); - return "a"; - }); - for (Disposable parent : parents) { - nbra = nbra.expireWith(parent); + try { + NonBlockingReadAction nbra = ReadAction + .nonBlocking(() -> { + fail(); + return "a"; + }); + for (Disposable parent : parents) { + nbra = nbra.expireWith(parent); + } + CancellablePromise promise = nbra.submit(AppExecutorUtil.getAppExecutorService()); + assertTrue(promise.isCancelled()); + assertNull(promise.get()); + } + finally { + Disposer.dispose(parents[1 - i]); } - CancellablePromise promise = nbra.submit(AppExecutorUtil.getAppExecutorService()); - assertTrue(promise.isCancelled()); - assertNull(promise.get()); } } }