From 3d996ff0b4a10627420bca71805ad2b5c9195e78 Mon Sep 17 00:00:00 2001 From: Daniel Rolka Date: Thu, 11 Apr 2013 16:04:44 +0200 Subject: Bug 395839 - AbstractEList$BasicIndexOutOfBoundsException when opening a context menu --- .../ui/workbench/renderers/swt/MenuManagerRenderer.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/MenuManagerRenderer.java b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/MenuManagerRenderer.java index 0cf54a36751..12e4960b939 100644 --- a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/MenuManagerRenderer.java +++ b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/MenuManagerRenderer.java @@ -629,8 +629,8 @@ public class MenuManagerRenderer extends SWTPartRenderer { Object obj = itemModel.getContributionItem(); if (obj instanceof IContextFunction) { final IEclipseContext lclContext = getContext(itemModel); - ici = (IContributionItem) ((IContextFunction) obj) - .compute(lclContext, null); + ici = (IContributionItem) ((IContextFunction) obj).compute( + lclContext, null); itemModel.setContributionItem(ici); } else if (obj instanceof IContributionItem) { ici = (IContributionItem) obj; @@ -890,7 +890,11 @@ public class MenuManagerRenderer extends SWTPartRenderer { legacySep.setVisible(item.isVisible()); legacySep.setOpaqueItem(item); linkModelToContribution(legacySep, item); - modelChildren.add(dest, legacySep); + if (modelChildren.size() > dest) { + modelChildren.add(dest, legacySep); + } else { + modelChildren.add(legacySep); + } } else if (menuElement instanceof MOpaqueMenuSeparator) { MOpaqueMenuSeparator legacySep = (MOpaqueMenuSeparator) menuElement; oldSeps.remove(legacySep); @@ -912,7 +916,11 @@ public class MenuManagerRenderer extends SWTPartRenderer { legacyItem.setVisible(item.isVisible()); legacyItem.setOpaqueItem(item); linkModelToContribution(legacyItem, item); - modelChildren.add(dest, legacyItem); + if (modelChildren.size() > dest) { + modelChildren.add(dest, legacyItem); + } else { + modelChildren.add(legacyItem); + } } else if (menuElement instanceof MOpaqueMenuItem) { MOpaqueMenuItem legacyItem = (MOpaqueMenuItem) menuElement; oldModelItems.remove(legacyItem); -- cgit v1.2.3