From e17369242fabdedb2ab13601728cb7f1fa8ceb47 Mon Sep 17 00:00:00 2001 From: Julian Honnen Date: Mon, 18 Feb 2019 11:21:29 +0100 Subject: 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 --- .../debug/internal/ui/views/variables/LogicalStructureCache.java | 7 +------ 1 file changed, 1 insertion(+), 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; } } -- cgit v1.2.3