Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 316532

Summary: [class diagram] undo doesn't work for association creation
Product: [Modeling] Papyrus Reporter: Cedric Dumoulin <cedric.dumoulin>
Component: CoreAssignee: Patrick Tessier <Patrick.Tessier>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: P3    
Version: 0.7.0   
Target Milestone: 0.7.0   
Hardware: PC   
OS: Windows XP   
Whiteboard:
Bug Depends on:    
Bug Blocks: 316292    

Description Cedric Dumoulin CLA 2010-06-10 16:32:28 EDT
- create two classes
- create an association
- do undo - an error is thrown


java.lang.NullPointerException
	at org.eclipse.papyrus.diagram.clazz.custom.helper.AssociationEndSourceLabelHelper.getUMLElement(AssociationEndSourceLabelHelper.java:45)
	at org.eclipse.papyrus.diagram.clazz.custom.policies.DisplayAssociationEndEditPolicy.getUMLElement(DisplayAssociationEndEditPolicy.java:145)
	at org.eclipse.papyrus.diagram.clazz.custom.policies.DisplayAssociationEndEditPolicy.removeAdditionalListeners(DisplayAssociationEndEditPolicy.java:345)
	at org.eclipse.papyrus.diagram.common.editpolicies.AbstractMaskManagedEditPolicy.deactivate(AbstractMaskManagedEditPolicy.java:93)
	at org.eclipse.gef.editparts.AbstractEditPart.deactivateEditPolicies(AbstractEditPart.java:306)
	at org.eclipse.gef.editparts.AbstractEditPart.deactivate(AbstractEditPart.java:294)
	at org.eclipse.gef.editparts.AbstractGraphicalEditPart.deactivate(AbstractGraphicalEditPart.java:354)
	at org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart.deactivate(GraphicalEditPart.java:315)
	at org.eclipse.gef.editparts.AbstractEditPart.deactivate(AbstractEditPart.java:292)
	at org.eclipse.gef.editparts.AbstractGraphicalEditPart.deactivate(AbstractGraphicalEditPart.java:354)
	at org.eclipse.gmf.runtime.diagram.ui.editparts.ConnectionEditPart.deactivate(ConnectionEditPart.java:383)
	at org.eclipse.papyrus.diagram.clazz.custom.edit.part.AbstractAssociationEditPart.deactivate(AbstractAssociationEditPart.java:73)
	at org.eclipse.gef.editparts.AbstractGraphicalEditPart.removeSourceConnection(AbstractGraphicalEditPart.java:816)
	at org.eclipse.gef.editparts.AbstractGraphicalEditPart.refreshSourceConnections(AbstractGraphicalEditPart.java:692)
	at org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeNodeEditPart.handleNotificationEvent(ShapeNodeEditPart.java:227)
	at org.eclipse.papyrus.diagram.common.editparts.NodeEditPart.handleNotificationEvent(NodeEditPart.java:66)
	at org.eclipse.papyrus.diagram.common.editparts.UMLNodeEditPart.handleNotificationEvent(UMLNodeEditPart.java:94)
	at org.eclipse.papyrus.diagram.common.editparts.NamedElementEditPart.handleNotificationEvent(NamedElementEditPart.java:47)
	at org.eclipse.papyrus.diagram.common.editparts.ClassifierEditPart.handleNotificationEvent(ClassifierEditPart.java:50)
	at org.eclipse.papyrus.diagram.clazz.edit.parts.ClassEditPart.handleNotificationEvent(ClassEditPart.java:196)
	at org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart.notifyChanged(GraphicalEditPart.java:1438)
	at org.eclipse.gmf.runtime.diagram.core.listener.DiagramEventBroker.fireNotification(DiagramEventBroker.java:500)
	at org.eclipse.gmf.runtime.diagram.core.listener.DiagramEventBroker.resourceSetChanged(DiagramEventBroker.java:395)
	at org.eclipse.gmf.runtime.diagram.ui.DiagramEventBrokerThreadSafe.resourceSetChanged(DiagramEventBrokerThreadSafe.java:73)
	at org.eclipse.emf.transaction.impl.TransactionalEditingDomainImpl$1.run(TransactionalEditingDomainImpl.java:781)
	at org.eclipse.emf.transaction.impl.TransactionalEditingDomainImpl.runExclusive(TransactionalEditingDomainImpl.java:328)
	at org.eclipse.emf.transaction.impl.TransactionalEditingDomainImpl.postcommit(TransactionalEditingDomainImpl.java:771)
	at org.eclipse.emf.transaction.impl.TransactionalEditingDomainImpl.deactivate(TransactionalEditingDomainImpl.java:543)
	at org.eclipse.emf.transaction.impl.TransactionImpl.close(TransactionImpl.java:712)
	at org.eclipse.emf.transaction.impl.TransactionImpl.commit(TransactionImpl.java:474)
	at org.eclipse.emf.workspace.AbstractEMFOperation.undo(AbstractEMFOperation.java:372)
	at org.eclipse.gmf.runtime.common.core.command.CompositeCommand.doUndoWithResult(CompositeCommand.java:622)
	at org.eclipse.gmf.runtime.common.core.command.AbstractCommand.undo(AbstractCommand.java:216)
	at org.eclipse.gmf.runtime.common.core.command.CompositeCommand.doUndoWithResult(CompositeCommand.java:622)
	at org.eclipse.gmf.runtime.common.core.command.AbstractCommand.undo(AbstractCommand.java:216)
	at org.eclipse.core.commands.operations.DefaultOperationHistory.doUndo(DefaultOperationHistory.java:415)
	at org.eclipse.core.commands.operations.DefaultOperationHistory.undo(DefaultOperationHistory.java:1280)
	at org.eclipse.ui.operations.UndoActionHandler.runCommand(UndoActionHandler.java:78)
	at org.eclipse.ui.operations.OperationHistoryActionHandler$4.run(OperationHistoryActionHandler.java:311)
	at org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:464)
	at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:372)
	at org.eclipse.jface.dialogs.ProgressMonitorDialog.run(ProgressMonitorDialog.java:507)
	at org.eclipse.ui.internal.operations.TimeTriggeredProgressMonitorDialog.access$6(TimeTriggeredProgressMonitorDialog.java:1)
	at org.eclipse.ui.internal.operations.TimeTriggeredProgressMonitorDialog$2.run(TimeTriggeredProgressMonitorDialog.java:203)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
	at org.eclipse.ui.internal.operations.TimeTriggeredProgressMonitorDialog.run(TimeTriggeredProgressMonitorDialog.java:216)
	at org.eclipse.ui.operations.OperationHistoryActionHandler.run(OperationHistoryActionHandler.java:326)
	at org.eclipse.gmf.runtime.common.ui.action.actions.global.GlobalUndoAction.doRun(GlobalUndoAction.java:245)
	at org.eclipse.gmf.runtime.common.ui.action.AbstractActionHandler.run(AbstractActionHandler.java:359)
	at org.eclipse.gmf.runtime.common.ui.action.ActionManager.run(ActionManager.java:229)
	at org.eclipse.gmf.runtime.common.ui.action.AbstractActionHandler.runWithEvent(AbstractActionHandler.java:377)
	at org.eclipse.ui.actions.RetargetAction.runWithEvent(RetargetAction.java:230)
	at org.eclipse.jface.commands.ActionHandler.execute(ActionHandler.java:119)
	at org.eclipse.core.commands.Command.executeWithChecks(Command.java:476)
	at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508)
	at org.eclipse.ui.internal.handlers.HandlerService.executeCommand(HandlerService.java:169)
	at org.eclipse.ui.internal.keys.WorkbenchKeyboard.executeCommand(WorkbenchKeyboard.java:468)
Comment 1 Sébastien Gérard CLA 2010-06-21 11:55:59 EDT
When you create an association, if you undo the creation, the association is deleted from the model but not the graphical link.
Comment 2 Patrick Tessier CLA 2011-02-28 06:35:08 EST
It solves and tested