diff options
author | Julian Honnen | 2019-02-18 10:21:29 +0000 |
---|---|---|
committer | Julian Honnen | 2019-02-18 10:21:29 +0000 |
commit | e17369242fabdedb2ab13601728cb7f1fa8ceb47 (patch) | |
tree | 1e864d3e0d706aa878b7f01b8b48d356628386b8 | |
parent | 7d2ee1f434cab34357ca6b4d92fb8acbadb1ec00 (diff) | |
download | eclipse.platform.debug-e17369242fabdedb2ab13601728cb7f1fa8ceb47.tar.gz eclipse.platform.debug-e17369242fabdedb2ab13601728cb7f1fa8ceb47.tar.xz eclipse.platform.debug-e17369242fabdedb2ab13601728cb7f1fa8ceb47.zip |
Bug 544528 - avoid deadlock after failed evaluation
Moved fPendingValues.notifyAll() into finally block to ensure waiting
threads are woken up after uncaught exceptions.
Change-Id: Ia8a6c0126a6bf368c389118640edf51a7af7c6b0
Signed-off-by: Julian Honnen <julian.honnen@vector.com>
-rw-r--r-- | org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/variables/LogicalStructureCache.java | 7 |
1 files changed, 1 insertions, 6 deletions
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/variables/LogicalStructureCache.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/variables/LogicalStructureCache.java index d99b81fac..2389c3aac 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/variables/LogicalStructureCache.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/variables/LogicalStructureCache.java @@ -138,17 +138,12 @@ public class LogicalStructureCache { synchronized (fKnownValues) { fKnownValues.put(value, result); } - synchronized (fPendingValues) { - fPendingValues.remove(value); - fPendingValues.notifyAll(); - } return result; - } catch (CoreException e) { + } finally { synchronized (fPendingValues) { fPendingValues.remove(value); fPendingValues.notifyAll(); } - throw e; } } |