| Summary: | Potential regression since z-order for unsynchronized diagrams | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Product: | [Modeling] Sirius | Reporter: | Laurent Redor <laurent.redor> | ||||||
| Component: | Diagram | Assignee: | Laurent Redor <laurent.redor> | ||||||
| Status: | CLOSED FIXED | QA Contact: | |||||||
| Severity: | major | ||||||||
| Priority: | P3 | ||||||||
| Version: | unspecified | ||||||||
| Target Milestone: | 6.6.0 | ||||||||
| Hardware: | PC | ||||||||
| OS: | Windows 10 | ||||||||
| See Also: |
https://git.eclipse.org/r/c/sirius/org.eclipse.sirius/+/186649 https://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=1e964cb7d05951ad3b52c832206403ef03e386e1 |
||||||||
| Whiteboard: | |||||||||
| Bug Depends on: | |||||||||
| Bug Blocks: | 574273, 577025 | ||||||||
| Attachments: |
|
||||||||
The bug 574273 has been reopened because of this issue. New Gerrit change created: https://git.eclipse.org/r/c/sirius/org.eclipse.sirius/+/186649 Gerrit change https://git.eclipse.org/r/c/sirius/org.eclipse.sirius/+/186649 was merged to [v6.6.x]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=1e964cb7d05951ad3b52c832206403ef03e386e1 The remaining work concerns the automatic tests and the definition of use case in Sirius (not with Capella). For information, the tests from org.eclipse.sirius.tests.swtbot.HideRevealDiagramElementsLabelsTestWithOldUI fail randomly. Each time one of them fails, there is an error in Error Log view with a similar stack: java.lang.IndexOutOfBoundsException: Index does not exist at org.eclipse.draw2d.Figure.add(Figure.java:140) at org.eclipse.draw2d.FreeformLayer.add(FreeformLayer.java:28) at org.eclipse.draw2d.ConnectionLayer.add(ConnectionLayer.java:43) at org.eclipse.gmf.runtime.draw2d.ui.internal.figures.ConnectionLayerEx.add(ConnectionLayerEx.java:53) at org.eclipse.draw2d.Figure.add(Figure.java:185) at org.eclipse.sirius.diagram.ui.edit.api.part.AbstractDDiagramEditPart.reorderEdgesFiguresAccordingToGmfOrder(AbstractDDiagramEditPart.java:355) at org.eclipse.sirius.diagram.ui.edit.api.part.AbstractDDiagramEditPart.refreshChildren(AbstractDDiagramEditPart.java:327) at org.eclipse.gef.editparts.AbstractEditPart.refresh(AbstractEditPart.java:726) 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:863) at org.eclipse.emf.transaction.impl.TransactionalEditingDomainImpl.runExclusive(TransactionalEditingDomainImpl.java:328) at org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart.refresh(GraphicalEditPart.java:853) at org.eclipse.sirius.diagram.ui.edit.api.part.AbstractDiagramElementContainerEditPart.refreshEditPart(AbstractDiagramElementContainerEditPart.java:199) at org.eclipse.sirius.diagram.ui.edit.api.part.AbstractDiagramElementContainerEditPart.handleNotificationEvent(AbstractDiagramElementContainerEditPart.java:159) at org.eclipse.sirius.diagram.ui.edit.api.part.AbstractDiagramContainerEditPart.handleNotificationEvent(AbstractDiagramContainerEditPart.java:274) at org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart.notifyChanged(GraphicalEditPart.java:1437) at org.eclipse.gmf.runtime.diagram.core.listener.DiagramEventBroker.fireNotification(DiagramEventBroker.java:505) at org.eclipse.gmf.runtime.diagram.core.listener.DiagramEventBroker.resourceSetChanged(DiagramEventBroker.java:400) at org.eclipse.gmf.runtime.diagram.ui.DiagramEventBrokerThreadSafe.resourceSetChanged(DiagramEventBrokerThreadSafe.java:74) 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.execute(AbstractEMFOperation.java:155) at org.eclipse.core.commands.operations.DefaultOperationHistory.execute(DefaultOperationHistory.java:496) at org.eclipse.emf.workspace.impl.WorkspaceCommandStackImpl.doExecute(WorkspaceCommandStackImpl.java:208) at org.eclipse.emf.transaction.impl.AbstractTransactionalCommandStack.execute(AbstractTransactionalCommandStack.java:165) at org.eclipse.emf.transaction.impl.AbstractTransactionalCommandStack.execute(AbstractTransactionalCommandStack.java:219) at org.eclipse.sirius.diagram.ui.tools.internal.handler.ChangeFilterActivation.run(ChangeFilterActivation.java:72) at org.eclipse.sirius.diagram.ui.tools.internal.views.providers.filters.FiltersCellModifier.modify(FiltersCellModifier.java:126) ... Steps to reproduce:
* Import the modeling project tc2330 from tc2330.zip
* Open the diagram "new 2330 Diagram"
* Activate the filter "port collapse" (with tabbar filter drop down menu)
* Expected: The "red" ports are no longer visible.
* Deactivate the filter "port collapse" (with tabbar filter drop down menu)
* Expected: The "red" ports and associated edges are visible.
* But is "Only one red port is visible and no edge is visible. There is an IndexOutOfBoundsException in Error Log view".
These steps to reproduce are extracted from tests of class org.eclipse.sirius.tests.swtbot.HideRevealDiagramElementsLabelsTestWithOldUI that fail randomly. After the above fix the automatic tests are OK.
Created attachment 287438 [details]
tc2330.zip
Available in Sirius 6.6.0: https://projects.eclipse.org/projects/modeling.sirius/releases/6.6.0 |
Created attachment 287344 [details] IFE-5.2.zip This problem has been discovered in Capella. There is currently no reproduction use case with a simple Sirius viewpoint. The Capella scenario needs to be analysed. Steps to reproduce: * Import IFE project (from IFE-5.2.zip) * Open "\[PAB] Focus on Network Transport" (under "In-Flight Entertainment System\Physical Architecture\Structure\IFE System") * Synchronize the diagram (by clicking on contextual menu "Unsynchronized") * Add a functional exchange between "Synchronize Audio Video" and "Initiate Audio-Video Stream" * The following error is thrown: Uncaught exception during post-commit listener notifications java.lang.IndexOutOfBoundsException: Index does not exist at org.eclipse.draw2d.Figure.add(Figure.java:140) at org.eclipse.draw2d.FreeformLayer.add(FreeformLayer.java:28) at org.eclipse.draw2d.ConnectionLayer.add(ConnectionLayer.java:43) at org.eclipse.gmf.runtime.draw2d.ui.internal.figures.ConnectionLayerEx.add(ConnectionLayerEx.java:53) at org.eclipse.draw2d.Figure.add(Figure.java:185) at org.eclipse.sirius.diagram.ui.edit.api.part.AbstractDDiagramEditPart.reorderEdgesFiguresAccordingToGmfOrder(AbstractDDiagramEditPart.java:356) at org.eclipse.sirius.diagram.ui.edit.api.part.AbstractDDiagramEditPart.refreshChildren(AbstractDDiagramEditPart.java:326) at org.eclipse.gef.editparts.AbstractEditPart.refresh(AbstractEditPart.java:726) 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:862) at org.eclipse.emf.transaction.impl.TransactionalEditingDomainImpl.runExclusive(TransactionalEditingDomainImpl.java:328) at org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart.refresh(GraphicalEditPart.java:852) at org.eclipse.sirius.diagram.ui.edit.api.part.AbstractDDiagramEditPart.handleNotificationEvent(AbstractDDiagramEditPart.java:235) at org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart.notifyChanged(GraphicalEditPart.java:1436) at org.eclipse.gmf.runtime.diagram.core.listener.DiagramEventBroker.fireNotification(DiagramEventBroker.java:505) at org.eclipse.gmf.runtime.diagram.core.listener.DiagramEventBroker.resourceSetChanged(DiagramEventBroker.java:400) at org.eclipse.gmf.runtime.diagram.ui.DiagramEventBrokerThreadSafe.resourceSetChanged(DiagramEventBrokerThreadSafe.java:74) 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.execute(AbstractEMFOperation.java:155) at org.eclipse.gmf.runtime.common.core.command.CompositeCommand.doExecuteWithResult(CompositeCommand.java:404) at org.eclipse.gmf.runtime.common.core.command.AbstractCommand.execute(AbstractCommand.java:135) at org.eclipse.sirius.diagram.ui.tools.internal.commands.WrappingCommandIgnoringAffectedFiles.execute(WrappingCommandIgnoringAffectedFiles.java:125) at org.eclipse.core.commands.operations.DefaultOperationHistory.execute(DefaultOperationHistory.java:496) at org.eclipse.sirius.diagram.ui.tools.internal.editor.DDiagramCommandStack.execute(DDiagramCommandStack.java:73) at org.eclipse.sirius.diagram.ui.tools.internal.editor.DDiagramCommandStack.execute(DDiagramCommandStack.java:54) at org.eclipse.gmf.runtime.diagram.ui.parts.DiagramCommandStack.execute(DiagramCommandStack.java:157) at org.eclipse.gef.tools.AbstractTool.executeCommand(AbstractTool.java:425) at org.eclipse.gef.tools.AbstractTool.executeCurrentCommand(AbstractTool.java:438) at org.eclipse.gef.tools.AbstractConnectionCreationTool.handleCreateConnection(AbstractConnectionCreationTool.java:256) at org.eclipse.gef.tools.ConnectionCreationTool.handleButtonDown(ConnectionCreationTool.java:77) at org.eclipse.gef.tools.AbstractTool.mouseDown(AbstractTool.java:1091)