Summary: | [Core] Exception loop after the last diagram gets closed | ||
---|---|---|---|
Product: | [Modeling] Papyrus | Reporter: | Yann Tanguy <yann.tanguy> |
Component: | Core | Assignee: | Cedric Dumoulin <cedric.dumoulin> |
Status: | RESOLVED FIXED | QA Contact: | |
Severity: | major | ||
Priority: | P3 | Keywords: | plan |
Version: | 0.7.0 | ||
Target Milestone: | M1 | ||
Hardware: | PC | ||
OS: | Windows XP | ||
Whiteboard: | |||
Bug Depends on: | 279226 | ||
Bug Blocks: |
Description
Yann Tanguy
2009-06-10 10:10:18 EDT
This bug come from several problems: 1) The getDiagramDocument(DiagramDocumentEditor.java:232) method doesn't check for null when doing getDocumentProvider(). 2) The document provider is null because the editor has been disposed (which is normal). 3) An event handler still call the getDiagramDocument() method while the editor is disposed. This is done by an Eclipse service which still have a reference on the editor. Actions: 1) We should remove the reference from the Eclipse service. Maybe calling the org.eclipse.papyrus.sasheditor.internal.ActiveEditorServicesSwitcher.activeEditorChanged(PagePart, PagePart) do the trick. This should be done by a call to org.eclipse.papyrus.sasheditor.internal.SashWindowsContainer.pageChanged(PagePart) after the call to refreshTabs(). This is linked to the fact the pageChanged() is not actually properly called. 2) getDiagramDocument() method should check for null value. Calling pageChanged() properly clean up the faulty handler and solves the bug. |