diff options
Diffstat (limited to 'org.eclipse.m2e.core')
-rw-r--r-- | org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/project/registry/ProjectRegistryManager.java | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/project/registry/ProjectRegistryManager.java b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/project/registry/ProjectRegistryManager.java index 227f019e..856af866 100644 --- a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/project/registry/ProjectRegistryManager.java +++ b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/project/registry/ProjectRegistryManager.java @@ -680,9 +680,6 @@ public class ProjectRegistryManager { return null; } - // don't cache maven session - getMaven().detachFromSession(mavenProject); - // create and return new project facade MavenProjectFacade mavenProjectFacade = new MavenProjectFacade(ProjectRegistryManager.this, pom, mavenProject, resolverConfiguration); @@ -878,7 +875,14 @@ public class ProjectRegistryManager { * @throws StaleMutableProjectRegistryException if primary project registry was modified after mutable registry has * been created */ - void applyMutableProjectRegistry(MutableProjectRegistry newState, IProgressMonitor monitor) { + void applyMutableProjectRegistry(MutableProjectRegistry newState, IProgressMonitor monitor) throws CoreException { + // don't cache maven sessions + for(MavenProjectFacade facade : newState.getProjects()) { + MavenProject mavenProject = getMavenProject(facade); + if(mavenProject != null) { + getMaven().detachFromSession(mavenProject); + } + } List<MavenProjectChangedEvent> events = projectRegistry.apply(newState); //stateReader.writeWorkspaceState(projectRegistry); notifyProjectChangeListeners(events, monitor); |