Bug 495940 - ViewReference registration in EclipseContext broken

Move context event handler code into separate
WorkbenchPartReference method to ensure that "getClass()" and "this"
refer to that outer class, not to the anonymous EventHandler class.

Change-Id: Ieb2c2b42703e38920e652556aeb1d08e38565a7f
Signed-off-by: drgler <daniel.kruegler@gmail.com>
Signed-off-by: Andrey Loskutov <loskutov@gmx.de>
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchPartReference.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchPartReference.java
index e11a983..868495d 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchPartReference.java
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchPartReference.java
@@ -10,6 +10,7 @@
  *     Stefan Xenos, IBM; Chris Torrence, ITT Visual Information Solutions - bug 51580
  *     Nikolay Botev - bug 240651
  *     Andrey Loskutov <loskutov@gmx.de> - Bug 372799
+ *     Daniel Kruegler <daniel.kruegler@gmail.com> - Bug 495940
  *******************************************************************************/
 package org.eclipse.ui.internal;
 
@@ -166,23 +167,23 @@
 
 	private EventHandler createContextEventHandler() {
 		if (contextEventHandler == null) {
-			contextEventHandler = new EventHandler() {
-				@Override
-				public void handleEvent(Event event) {
-					Object element = event.getProperty(UIEvents.EventTags.ELEMENT);
-					MPart part = getModel();
-					if (element == part) {
-						if (part.getContext() != null) {
-							part.getContext().set(getClass().getName(), this);
-							unsubscribe();
-						}
-					}
-				}
-			};
+			contextEventHandler = event -> handleContextSet(event);
 		}
 		return contextEventHandler;
 	}
 
+	private void handleContextSet(Event event) {
+		Object element = event.getProperty(UIEvents.EventTags.ELEMENT);
+		MPart part = getModel();
+		if (element == part) {
+			IEclipseContext context = part.getContext();
+			if (context != null) {
+				context.set(getClass().getName(), this);
+				unsubscribe();
+			}
+		}
+	}
+
 	public void subscribe() {
 		IEventBroker broker = windowContext.get(IEventBroker.class);
 		broker.subscribe(UIEvents.Context.TOPIC_CONTEXT,