From db0881e92bdc7a16c0d3d2ddb64adb7aa2204066 Mon Sep 17 00:00:00 2001 From: Alexey Kudravtsev Date: Wed, 9 Dec 2015 14:47:26 +0300 Subject: [PATCH] IDEA-CR-7352 followup --- .../util/concurrency/BoundedTaskExecutor.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/platform/util/src/com/intellij/util/concurrency/BoundedTaskExecutor.java b/platform/util/src/com/intellij/util/concurrency/BoundedTaskExecutor.java index 167a607735f5..8e9a9e3ea9cc 100644 --- a/platform/util/src/com/intellij/util/concurrency/BoundedTaskExecutor.java +++ b/platform/util/src/com/intellij/util/concurrency/BoundedTaskExecutor.java @@ -115,7 +115,17 @@ public class BoundedTaskExecutor extends AbstractExecutorService { assert inProgress > 0 : inProgress; Runnable next; if (inProgress <= myMaxTasks && (next = myTaskQueue.poll()) != null) { - myBackendExecutor.execute(wrap(next)); + try { + myBackendExecutor.execute(wrap(next)); + } + catch (Error e) { + myInProgress.decrementAndGet(); + throw e; + } + catch (RuntimeException e) { + myInProgress.decrementAndGet(); + throw e; + } break; } if (myInProgress.compareAndSet(inProgress, inProgress-1)) {