Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDarin Wright2006-07-12 14:24:25 +0000
committerDarin Wright2006-07-12 14:24:25 +0000
commitcbe02639b2eef297e5ef067fdfce51f758e9741f (patch)
tree41d8b7eaaa8ebe5d83b1839f758aacb5e58112ee /org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/elements
parent6fa5eebf06a109dc437382a68c31639670800304 (diff)
downloadeclipse.platform.debug-cbe02639b2eef297e5ef067fdfce51f758e9741f.tar.gz
eclipse.platform.debug-cbe02639b2eef297e5ef067fdfce51f758e9741f.tar.xz
eclipse.platform.debug-cbe02639b2eef297e5ef067fdfce51f758e9741f.zip
Bug 148995 Deadlock while stepping
Diffstat (limited to 'org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/elements')
-rw-r--r--org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/elements/adapters/StackFrameSourceDisplayAdapter.java17
1 files changed, 12 insertions, 5 deletions
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/elements/adapters/StackFrameSourceDisplayAdapter.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/elements/adapters/StackFrameSourceDisplayAdapter.java
index 2181d1fb5..1480e2f5e 100644
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/elements/adapters/StackFrameSourceDisplayAdapter.java
+++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/elements/adapters/StackFrameSourceDisplayAdapter.java
@@ -138,18 +138,25 @@ public class StackFrameSourceDisplayAdapter implements ISourceDisplayAdapter {
/* (non-Javadoc)
* @see org.eclipse.ui.progress.UIJob#runInUIThread(org.eclipse.core.runtime.IProgressMonitor)
*/
- public synchronized IStatus runInUIThread(IProgressMonitor monitor) {
- if (!monitor.isCanceled() && fResult != null && fPage != null) {
- DebugUITools.displaySource(fResult, fPage);
+ public IStatus runInUIThread(IProgressMonitor monitor) {
+ ISourceLookupResult result = null;
+ IWorkbenchPage page = null;
+ synchronized (this) {
+ result = fResult;
+ page = fPage;
+ setDisplayInfo(null, null);
+ }
+ if (!monitor.isCanceled() && result != null && page != null) {
+ DebugUITools.displaySource(result, page);
// termination may have occurred while displaying source
if (monitor.isCanceled()) {
- Object artifact = fResult.getArtifact();
+ Object artifact = result.getArtifact();
if (artifact instanceof IStackFrame) {
clearSourceSelection(((IStackFrame)artifact).getThread());
}
}
}
- setDisplayInfo(null, null);
+
return Status.OK_STATUS;
}

Back to the top