Community
Participate
Working Groups
DiagramMappingsManagerImpl.iterate(MappingsListVisitor, DragAndDropTarget) method evaluates the semantic candidate expressions for sub-elements (nodes, brodered nodes...) even for DNodeContainer that are about to be deleted (their target is null or target.eResource() is null). This is done during the MappingsUpdater.updateMappings(DragAndDropTarget) called by the DDiagramSynchronizer.refreshOpertaion(). This can lead to interpreter issues and cost performances for no reason.
Alex could you add a reproduction case ?
Correction will have to be done on DNodeContainer, DNodeList, and DNode
See also bug 440032, which will probably involve large refactorings of DiagramMappingsManagerImpl.
The issue comes from DDiagramSynchroniser which call MappingsUpdater even for container whose target is detached. Consequently when interpreted expression should be evaluated during refresh, the IInterpreter cannot be found on the detached target. See https://git.eclipse.org/r/33886 for a fix.
b40976e5b30359689069fa636769007eec85a003 integrate the fix.
Available in Sirius 2.0.0.