From 24015b387c3630e603f6eada267ebc6ab79d3c02 Mon Sep 17 00:00:00 2001 From: Andrey Loskutov Date: Sun, 22 Mar 2020 12:39:54 +0100 Subject: Bug 561338 - Random IOOB on updating breadcrumb in Debug view Do not call into JFace with invalid index. Change-Id: I62cd885cb5fae2bc6e3ca540f1b691f9ce1e113d Signed-off-by: Andrey Loskutov --- .../internal/ui/viewers/model/TreeModelContentProvider.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'org.eclipse.debug.ui/ui/org/eclipse') diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/model/TreeModelContentProvider.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/model/TreeModelContentProvider.java index 50724c0c2..4ed94c55a 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/model/TreeModelContentProvider.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/model/TreeModelContentProvider.java @@ -1543,7 +1543,14 @@ public class TreeModelContentProvider implements ITreeModelContentProvider, ICon DebugUIPlugin.trace(" - (found) remove(" + parentPath.getLastSegment() + ", viewIndex: " + viewIndex + " modelIndex: " + modelIndex); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } rescheduleUpdates(parentPath, modelIndex); - getViewer().remove(parentPath, viewIndex); + if (viewIndex >= 0) { + getViewer().remove(parentPath, viewIndex); + } else { + if (DebugUIPlugin.DEBUG_CONTENT_PROVIDER && DebugUIPlugin.DEBUG_TEST_PRESENTATION_ID(getPresentationContext())) { + DebugUIPlugin.trace(" - (not found in UI) remove(" + parentPath.getLastSegment() + ", viewIndex: " //$NON-NLS-1$ //$NON-NLS-2$ + + viewIndex + " modelIndex: " + modelIndex); //$NON-NLS-1$ + } + } removeElementFromFilters(parentPath, modelIndex); return; } -- cgit v1.2.3