[546681] Fix lifecycle of SessionEditor
Make sure we cleanup all our resources and remove all our listeners in
dispose(). No need anymore to override the close() method.
Bug: 546681
Change-Id: I3d8e29ae7734de7b9fdecbd622bddb63c0e3ca31
Signed-off-by: Pierre-Charles David <pierre-charles.david@obeo.fr>
diff --git a/plugins/org.eclipse.sirius.ui.editor/src/org/eclipse/sirius/ui/editor/SessionEditor.java b/plugins/org.eclipse.sirius.ui.editor/src/org/eclipse/sirius/ui/editor/SessionEditor.java
index 8d4ea7e..82980ed 100644
--- a/plugins/org.eclipse.sirius.ui.editor/src/org/eclipse/sirius/ui/editor/SessionEditor.java
+++ b/plugins/org.eclipse.sirius.ui.editor/src/org/eclipse/sirius/ui/editor/SessionEditor.java
@@ -435,6 +435,7 @@
resourceSetListener = null;
}
if (session != null) {
+ session.removeListener(SessionEditor.this);
final IEditingSession editingSession = SessionUIManager.INSTANCE.getUISession(session);
if (editingSession != null) {
editingSession.detachEditor(this, choice == ISaveablePart2.NO);
@@ -443,18 +444,13 @@
session.getTransactionalEditingDomain().getCommandStack().removeCommandStackListener(listener);
}
}
- session = null;
- propertySheetPage = null;
- super.dispose();
- }
-
- @Override
- public void close(boolean save) {
if (pageRegistry != null) {
pageRegistry.removeRegistryListener(this);
pageRegistry = null;
- super.close(save);
}
+ session = null;
+ propertySheetPage = null;
+ super.dispose();
}
@Override