Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJulian Honnen2019-02-18 05:21:29 -0500
committerJulian Honnen2019-02-18 05:21:29 -0500
commite17369242fabdedb2ab13601728cb7f1fa8ceb47 (patch)
tree1e864d3e0d706aa878b7f01b8b48d356628386b8 /org.eclipse.debug.ui
parent7d2ee1f434cab34357ca6b4d92fb8acbadb1ec00 (diff)
downloadeclipse.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>
Diffstat (limited to 'org.eclipse.debug.ui')
-rw-r--r--org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/variables/LogicalStructureCache.java7
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;
}
}

Back to the top