diff --git a/com.servoy.eclipse.core/src/com/servoy/eclipse/core/ServoyModel.java b/com.servoy.eclipse.core/src/com/servoy/eclipse/core/ServoyModel.java index d4290be443..da14cffada 100644 --- a/com.servoy.eclipse.core/src/com/servoy/eclipse/core/ServoyModel.java +++ b/com.servoy.eclipse.core/src/com/servoy/eclipse/core/ServoyModel.java @@ -3018,10 +3018,12 @@ else if (DataSourceUtils.VIEW_DATASOURCE.equals(tableNode.getServerName())) { changedEditing.put(child.getUUID(), editingPersist); } - } - - // TODO maybe here update used DB severs/tables here instead of sooner? or maybe both now and before... (there is another todo added in the same commit in SolutionDeserializer where it currently does that) - + } + + // Update solution server proxies after all persists are fully processed including deletions. + // This ensures the data source collection reflects the current state of the solution. + ModelUtils.updateSolutionServerProxies(solution, ApplicationServerRegistry.get().getDeveloperRepository()); + // update the last modified time for the web client. solution.updateLastModifiedTime(); diff --git a/com.servoy.eclipse.model/src/com/servoy/eclipse/model/repository/SolutionDeserializer.java b/com.servoy.eclipse.model/src/com/servoy/eclipse/model/repository/SolutionDeserializer.java index f14b1b7945..a13464c83a 100644 --- a/com.servoy.eclipse.model/src/com/servoy/eclipse/model/repository/SolutionDeserializer.java +++ b/com.servoy.eclipse.model/src/com/servoy/eclipse/model/repository/SolutionDeserializer.java @@ -326,11 +326,11 @@ public Object visit(IPersist o) return CONTINUE_TRAVERSAL; } - }); - - // TODO isn't this done too soon? I mean a deleted form from disk for example would not yet be removed from the solution at this point right? (see the other TODO that was added in ServoyModel in the same commit) - ModelUtils.updateSolutionServerProxies(solution, repository); - + }); + + // ModelUtils.updateSolutionServerProxies() moved to ServoyModel.handleChangedFiles() + // for better timing - after all persists are fully processed including deletions + return changedFilesCopy; // what remains of the day } catch (Exception e)