Bug 477567 - [All Diagram] Empty model doesn't save diagram
Summary: [All Diagram] Empty model doesn't save diagram
Status: NEW
Alias: None
Product: Papyrus
Classification: Modeling
Component: Core (show other bugs)
Version: 1.1.2   Edit
Hardware: PC Windows 7
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Project Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-09-16 08:16 EDT by Johan Van Noten CLA
Modified: 2018-06-01 08:10 EDT (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Johan Van Noten CLA 2015-09-16 08:16:44 EDT
Scenario:
* Use the wizard to create a new Papyrus UML model
* Don't allow the wizard to create any diagram.
* Right-click on the model explorer
* Create a new Class diagram

--> Editor doesn't go to "dirty" state

* Close the model's editor window (no save will be requested).
* Try to reopen the model

--> Error shown in new editor:
    - Unresolved tab
    - This diagram is contained in an unresolved resource...

Work around:
* Once an element is dragged into the diagram, the model goes to dirty and the corresponding diagram is correctly saved.
* Allow the wizard to create the initial diagram. In that case the notation file is correctly saved as well.
Comment 1 Johan Van Noten CLA 2015-10-07 05:48:14 EDT
Reproduction on today's Mars nightly + SysML1.4 from git.
Corrupted "Undo" behavior.

Scenario:
* Create new SysML 1.4 model
* Create Block1
* Right-click RootElement and create new Internal Block Diagram
  This creates Block2 and a corresponding diagram.
* Press Ctrl-Z for undo

Problem:
* You expect to see Block2 + diagram to be removed.
* Instead you see:
  - Diagram remains
  - Block2 disappears
  - Block1 gets its stereotypeapplication removed and becomes a "Class" and now has an empty name.

Tried:
* Once you save the model, with at least one diagram in it, the behavior doesn't appear anymore.
Comment 2 Benoit Maggi CLA 2018-06-01 08:10:35 EDT
Still valid for all issues in Papyrus Photon RC2

I got some exceptions:

java.lang.NullPointerException
	at org.eclipse.papyrus.infra.gmfdiag.common.utils.DiagramEditPartsUtil.getIcon(DiagramEditPartsUtil.java:1056)
	at org.eclipse.papyrus.uml.diagram.composite.edit.parts.ClassCompositeNameEditPart.getLabelIcon(ClassCompositeNameEditPart.java:243)
	at org.eclipse.papyrus.uml.diagram.composite.edit.parts.ClassCompositeNameEditPart.refreshLabel(ClassCompositeNameEditPart.java:529)
	at org.eclipse.papyrus.uml.diagram.composite.edit.parts.ClassCompositeNameEditPart.refreshVisuals(ClassCompositeNameEditPart.java:510)
	at org.eclipse.gef.editparts.AbstractEditPart.refresh(AbstractEditPart.java:725)
	at org.eclipse.gef.editparts.AbstractGraphicalEditPart.refresh(AbstractGraphicalEditPart.java:644)
	at org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart.access$3(GraphicalEditPart.java:1)
	at org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart$3.run(GraphicalEditPart.java:861)
	at org.eclipse.papyrus.infra.emf.readonly.PapyrusROTransactionalEditingDomain.runExclusive(PapyrusROTransactionalEditingDomain.java:271)
	at org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart.refresh(GraphicalEditPart.java:851)
	at org.eclipse.papyrus.infra.gmfdiag.common.helper.DiagramHelper.refresh(DiagramHelper.java:55)
	at org.eclipse.papyrus.infra.gmfdiag.common.helper.DiagramHelper.refresh(DiagramHelper.java:64)
	at org.eclipse.papyrus.infra.gmfdiag.common.helper.DiagramHelper.refresh(DiagramHelper.java:84)
	at org.eclipse.papyrus.infra.gmfdiag.common.helper.DiagramHelper$1.run(DiagramHelper.java:149)
	at org.eclipse.papyrus.infra.ui.util.UIUtil$UIExecutorService$RunnableWrapper.run(UIUtil.java:536)
	at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:37)
	at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:182)
	at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3906)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3537)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1170)

===============and =============================

org.eclipse.papyrus.infra.core.services.ServiceNotFoundException: Can't find the ResourceSet needed retrieve the ServiceRegistry.
	at org.eclipse.papyrus.infra.emf.utils.ServiceUtilsForResource.getServiceRegistry(ServiceUtilsForResource.java:63)
	at org.eclipse.papyrus.infra.emf.utils.ServiceUtilsForEObject.getServiceRegistry(ServiceUtilsForEObject.java:43)
	at org.eclipse.papyrus.infra.emf.utils.ServiceUtilsForEObject.getServiceRegistry(ServiceUtilsForEObject.java:1)
	at org.eclipse.papyrus.infra.core.utils.AbstractServiceUtils.getService(AbstractServiceUtils.java:117)
	at org.eclipse.papyrus.infra.gmfdiag.common.utils.DiagramEditPartsUtil.getIcon(DiagramEditPartsUtil.java:1048)
	at org.eclipse.papyrus.uml.diagram.composite.edit.parts.ClassCompositeNameEditPart.getLabelIcon(ClassCompositeNameEditPart.java:243)
	at org.eclipse.papyrus.uml.diagram.composite.edit.parts.ClassCompositeNameEditPart.refreshLabel(ClassCompositeNameEditPart.java:529)
	at org.eclipse.papyrus.uml.diagram.composite.edit.parts.ClassCompositeNameEditPart.refreshVisuals(ClassCompositeNameEditPart.java:510)
	at org.eclipse.gef.editparts.AbstractEditPart.refresh(AbstractEditPart.java:725)
	at org.eclipse.gef.editparts.AbstractGraphicalEditPart.refresh(AbstractGraphicalEditPart.java:644)
	at org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart.access$3(GraphicalEditPart.java:1)
	at org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart$3.run(GraphicalEditPart.java:861)
	at org.eclipse.papyrus.infra.emf.readonly.PapyrusROTransactionalEditingDomain.runExclusive(PapyrusROTransactionalEditingDomain.java:271)
	at org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart.refresh(GraphicalEditPart.java:851)
	at org.eclipse.papyrus.infra.gmfdiag.common.helper.DiagramHelper.refresh(DiagramHelper.java:55)
	at org.eclipse.papyrus.infra.gmfdiag.common.helper.DiagramHelper.refresh(DiagramHelper.java:64)
	at org.eclipse.papyrus.infra.gmfdiag.common.helper.DiagramHelper.refresh(DiagramHelper.java:84)
	at org.eclipse.papyrus.infra.gmfdiag.common.helper.DiagramHelper$1.run(DiagramHelper.java:149)