Bug 435756 - Bug when using an edge creation tool with extra mapping for relation based edge
Summary: Bug when using an edge creation tool with extra mapping for relation based edge
Status: NEW
Alias: None
Product: Sirius
Classification: Modeling
Component: Diagram (show other bugs)
Version: 1.0.0M7   Edit
Hardware: All All
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Project Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords: triaged
Depends on:
Blocks:
 
Reported: 2014-05-26 05:31 EDT by Laurent Redor CLA
Modified: 2014-06-05 04:59 EDT (History)
1 user (show)

See Also:


Attachments
createBorderNodeWithEdge.zip: Use case for steps to reproduce (3.64 KB, application/zip)
2014-05-26 05:35 EDT, Laurent Redor CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Laurent Redor CLA 2014-05-26 05:31:43 EDT
In the case where the edge creation tool also creates the source and the target of the edge, there is a bug. This kind of tool try to create an edge between the extra source mapping and the extra target mapping whereas it is impossible (the evaluation of the targetFinderExpression fails).

Steps to reproduce:
* Imports the joined project from createBorderNodeWithEdge.zip
* Disable the Sirius "Automatic Refresh" preference (to avoid an edge creation by the automatic refresh)
* Open the diagram new "SampleDiagram"
* Execute one of the tool "Case1-withCreateEdgeView" or "Case2-withouCreateEdgeView" (the result is the same) by clicking between P1 and P2
** This tool creates an interface in P1, an interface in P2, and the interface of P1 inherits the interface of P2.
* The border nodes are created and the edge too. But there are warnings in "Error Log" view because Sirius try to create an edge between P1 and P2

Corresponding warning in Error Log: the following edge mapping target finder expression could not be correctly evaluated : feature:eSuperTypes
org.eclipse.sirius.common.tools.api.interpreter.EvaluationException: Unknown feature name eSuperTypes.
	at org.eclipse.sirius.common.tools.internal.interpreter.FeatureInterpreter.evaluate(FeatureInterpreter.java:95)
	at org.eclipse.sirius.common.tools.internal.interpreter.AbstractInterpreter.evaluateCollection(AbstractInterpreter.java:52)
	at org.eclipse.sirius.tools.internal.interpreter.ODesignGenericInterpreter.evaluateCollection(ODesignGenericInterpreter.java:175)
	at org.eclipse.sirius.diagram.business.api.query.EdgeMappingQuery.evaluateTargetFinderExpression(EdgeMappingQuery.java:186)
	at org.eclipse.sirius.diagram.tools.api.refresh.BestMappingGetter.isSemanticCandidate(BestMappingGetter.java:350)
	at org.eclipse.sirius.diagram.tools.api.refresh.BestMappingGetter.getBestEdgeMapping(BestMappingGetter.java:272)
	at org.eclipse.sirius.diagram.business.internal.helper.task.CreateDEdgeTask.execute(CreateDEdgeTask.java:118)
	at org.eclipse.sirius.business.api.helper.task.TaskExecutor.operation(TaskExecutor.java:95)
	at org.eclipse.sirius.business.api.helper.task.TaskExecutor.execute(TaskExecutor.java:65)
	at org.eclipse.sirius.tools.api.command.SiriusCommand.doExecute(SiriusCommand.java:80)
	at org.eclipse.emf.transaction.RecordingCommand.execute(RecordingCommand.java:135)
	at org.eclipse.sirius.diagram.ui.tools.api.command.GMFCommandWrapper.doExecuteWithResult(GMFCommandWrapper.java:103)
	at org.eclipse.gmf.runtime.emf.commands.core.command.AbstractTransactionalCommand.doExecute(AbstractTransactionalCommand.java:247)
	at org.eclipse.emf.workspace.AbstractEMFOperation.execute(AbstractEMFOperation.java:150)
Comment 1 Laurent Redor CLA 2014-05-26 05:35:45 EDT
Created attachment 243479 [details]
createBorderNodeWithEdge.zip: Use case for steps to reproduce