Bug 143812 - [Memory View] Memory View's tree viewer handles any terminate event
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/MemoryBlocksTreeViewPane.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/MemoryBlocksTreeViewPane.java
index 04fe7b5..0199442 100644
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/MemoryBlocksTreeViewPane.java
+++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/MemoryBlocksTreeViewPane.java
@@ -209,29 +209,32 @@
if (event.getKind() == DebugEvent.TERMINATE)
{
- IMemoryBlockRetrieval srcRetrieval = getMemoryBlockRetrieval(event.getSource());
- if (srcRetrieval == fRetrieval)
+ // should only handle the terminate event if the target is terminated
+ if (event.getSource() instanceof IDebugTarget)
{
- // #setInput must be done on the UI thread
- UIJob job = new UIJob("setInput"){ //$NON-NLS-1$
- public IStatus runInUIThread(IProgressMonitor monitor) {
+ IMemoryBlockRetrieval srcRetrieval = getMemoryBlockRetrieval(event.getSource());
+ if (srcRetrieval == fRetrieval)
+ {
+ // #setInput must be done on the UI thread
+ UIJob job = new UIJob("setInput"){ //$NON-NLS-1$
+ public IStatus runInUIThread(IProgressMonitor monitor) {
+
+ // if viewpane is disposed, do not handle event
+ if (fTreeViewer.getContentProvider() == null)
+ return Status.OK_STATUS;
+
+ fTreeViewer.setInput(null);
+ return Status.OK_STATUS;
+ }};
- // if viewpane is disposed, do not handle event
- if (fTreeViewer.getContentProvider() == null)
- return Status.OK_STATUS;
-
- fTreeViewer.setInput(null);
- return Status.OK_STATUS;
- }};
-
- job.setSystem(true);
- job.schedule();
+ job.setSystem(true);
+ job.schedule();
+ }
+
+ IMemoryBlockRetrieval retrieval = getMemoryBlockRetrieval(event.getSource());
+ if (retrieval != null)
+ fViewerState.remove(retrieval);
}
-
- IMemoryBlockRetrieval retrieval = getMemoryBlockRetrieval(event.getSource());
- if (retrieval != null)
- fViewerState.remove(retrieval);
-
}
}