Community
Participate
Working Groups
When removing an element from a Papyrus model, a call to org.eclipse.papyrus.commands.DestroyElementPapyrusCommand.fileOfIncomingReferences () is performed to get a list of the files containing model elements referencing the deleted element. After a call to the cross referencers to get the list of referencing objects, the current implementation is indirectly calling org.eclipse.emf.workspace.util.WorkspaceSynchronizer.getFile(Resource) for all the referencing objects, even if they all belong to the same resource. This method is performing advanced and potentially costly Eclipse File System operations which can have a huge performance impact on big models. I'll propose a patch that will first iterate on the referencing object to collect the set a of resources for which we should call WorkspaceSynchronizer.getFile(Resource).
New Gerrit change created: https://git.eclipse.org/r/c/papyrus/org.eclipse.papyrus/+/196657
Gerrit change https://git.eclipse.org/r/c/papyrus/org.eclipse.papyrus/+/196657 was merged to [master]. Commit: http://git.eclipse.org/c/papyrus/org.eclipse.papyrus.git/commit/?id=533557fdcaee863752a336b3ec34b092a7694246