Bug 572374 - asyncExec in MenuManagerRenderer causes SWT error and
display filter leak

Change-Id: I3d4c78f9e686c3326a8479448ef1d29df43fd4e2
Signed-off-by: Rolf Theunissen <rolf.theunissen@gmail.com>
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 cf76760..c1bc102 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
@@ -337,11 +337,12 @@
 		context.remove(MenuManagerRendererFilter.class);
 		Display display = context.get(Display.class);
 		if (display != null && !display.isDisposed() && rendererFilter != null) {
+			final MenuManagerRendererFilter filter = rendererFilter;
 			display.asyncExec(() -> {
 				if (!display.isDisposed()) {
-					display.removeFilter(SWT.Show, rendererFilter);
-					display.removeFilter(SWT.Hide, rendererFilter);
-					display.removeFilter(SWT.Dispose, rendererFilter);
+					display.removeFilter(SWT.Show, filter);
+					display.removeFilter(SWT.Hide, filter);
+					display.removeFilter(SWT.Dispose, filter);
 				}
 			});
 		}