Bug 344044 [Compatibility] Action bars must be deactivated when its parent part gets disposed
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchPage.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchPage.java
index f697eea..8960bfd 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchPage.java
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchPage.java
@@ -175,9 +175,10 @@
 
 			Object client = part.getObject();
 			if (client instanceof CompatibilityPart) {
-				PartSite site = (PartSite) ((CompatibilityPart) client).getPart().getSite();
+				CompatibilityPart compatibilityPart = (CompatibilityPart) client;
+				IWorkbenchPartSite site = compatibilityPart.getPart().getSite();
 				// if it's an editor, we only want to disable the actions
-				site.deactivateActionBars(site instanceof ViewSite);
+				compatibilityPart.deactivateActionBars(site instanceof ViewSite);
 			}
 
 			((WorkbenchWindow) getWorkbenchWindow()).getStatusLineManager().update(false);
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/e4/compatibility/CompatibilityPart.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/e4/compatibility/CompatibilityPart.java
index 26fd481..a268d2d 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/e4/compatibility/CompatibilityPart.java
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/e4/compatibility/CompatibilityPart.java
@@ -37,6 +37,7 @@
 import org.eclipse.ui.PartInitException;
 import org.eclipse.ui.internal.PartSite;
 import org.eclipse.ui.internal.SaveableHelper;
+import org.eclipse.ui.internal.ViewSite;
 import org.eclipse.ui.internal.WorkbenchPage;
 import org.eclipse.ui.internal.WorkbenchPartReference;
 import org.eclipse.ui.internal.WorkbenchPlugin;
@@ -267,6 +268,11 @@
 		});
 	}
 
+	public void deactivateActionBars(boolean forceHide) {
+		PartSite site = getReference().getSite();
+		site.deactivateActionBars(forceHide);
+	}
+
 	@PreDestroy
 	void destroy() {
 		if (!alreadyDisposed) {
@@ -284,6 +290,7 @@
 	void disposeSite() {
 		PartSite site = getReference().getSite();
 		if (site != null) {
+			deactivateActionBars(site instanceof ViewSite);
 			site.dispose();
 		}
 	}