Community
Participate
Working Groups
In Bug #470083, the internal method SessionResourcesSynchronizer.getImpactingNewStatuses(Collection<ResourceStatusChange>) has been modified to ensure to return aird files changes after the semantic ones. This allow to be sure that the semantic reload will be done after the aird ones after external changes (a refresh on the workspace after modifications done on several files in another workspace: control, representation creation, ...). We might still have issues with several scenario regarding the chosen saving or reloading policies and the exact external changes or conflicts because the chosen actions are processed one after the other following the newStatuses keySet order initially computed from the file name order (see ResourceDeltaVisitor). The current behavior works fine when one file is modified. But if we receive a change mixing external changes, deletion ( and conflicts), the sequence of action execution is controlled by the file names/order and not by us. Furthermore if we have several resources to reload, several reload runnable are executed on the ted with several potential call to postCommits, saver, ... We should improve this situation. See org.eclipse.sirius.business.internal.session.danalysis.SessionResourcesSynchronizer.statusesChanged(Collection<ResourceStatusChange>) We should build/analyse the newStatus map and known/specify the order in which we want to handle the newStatuses, then we should process the actions in bath per action type and not per resource.
Agreed, and this is part of a more general area of "workspace integration" and "thread-safe session" that I'll start to look into in the next few days.
Moving out of 3.1, as neither the analysis nor the expected benefits are well-defined enough yet.