From: Marko Luukkainen Date: Mon, 25 Feb 2019 12:22:14 +0000 (+0000) Subject: Merge "NPE while recalculating title for CompatibilityPart" into release/1.35.1 X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=commitdiff_plain;h=d5d681fba3e61c7121c0efd34e030c13f5c839c9;hp=a41e6ca92a50b8062a9d865e1de8fa7b87115025;p=simantics%2Fplatform.git Merge "NPE while recalculating title for CompatibilityPart" into release/1.35.1 --- diff --git a/bundles/org.simantics.ui/src/org/simantics/ui/workbench/ResourceEditorPart.java b/bundles/org.simantics.ui/src/org/simantics/ui/workbench/ResourceEditorPart.java index a81357532..517ddf39e 100644 --- a/bundles/org.simantics.ui/src/org/simantics/ui/workbench/ResourceEditorPart.java +++ b/bundles/org.simantics.ui/src/org/simantics/ui/workbench/ResourceEditorPart.java @@ -20,7 +20,10 @@ import org.eclipse.jface.action.IStatusLineManager; import org.eclipse.ui.IActionBars; import org.eclipse.ui.IEditorInput; import org.eclipse.ui.IEditorSite; +import org.eclipse.ui.IWorkbenchPartSite; import org.eclipse.ui.PartInitException; +import org.eclipse.ui.internal.PartSite; +import org.eclipse.ui.internal.e4.compatibility.CompatibilityEditor; import org.eclipse.ui.part.EditorPart; import org.simantics.db.Resource; import org.simantics.db.Session; @@ -98,11 +101,25 @@ public abstract class ResourceEditorPart extends EditorPart implements IResource * @param partName */ protected void safeSetPartName(String partName) { - if (!disposed) { + if (!disposed && checkCompatibilityPartNotBeingDisposed()) { // this is to fix bug https://gitlab.simantics.org/simantics/platform/issues/117 setPartName(partName); } } + @SuppressWarnings("restriction") + private boolean checkCompatibilityPartNotBeingDisposed() { + IWorkbenchPartSite site = getSite(); + if (site instanceof PartSite) { + PartSite partSite = (PartSite) getSite(); + Object object = partSite.getModel().getObject(); + if (object instanceof CompatibilityEditor) { + CompatibilityEditor editor = (CompatibilityEditor) object; + return !editor.isBeingDisposed(); + } + } + return true; + } + /** * Safely sets title tooltip for parts whose IEditorInput is not yet disposed (e.g. * removed from database)