Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/project/WorkspaceStateWriter.java')
-rw-r--r--org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/project/WorkspaceStateWriter.java17
1 files changed, 12 insertions, 5 deletions
diff --git a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/project/WorkspaceStateWriter.java b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/project/WorkspaceStateWriter.java
index 1878930b..cc3c1c1e 100644
--- a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/project/WorkspaceStateWriter.java
+++ b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/project/WorkspaceStateWriter.java
@@ -36,8 +36,9 @@ import org.eclipse.m2e.core.project.IMavenProjectChangedListener;
import org.eclipse.m2e.core.project.IMavenProjectFacade;
import org.eclipse.m2e.core.project.MavenProjectChangedEvent;
+
/**
- * Maintains map file of maven artifacts present in workspace.
+ * Maintains map file of maven artifacts present in workspace.
*/
public class WorkspaceStateWriter implements IMavenProjectChangedListener {
private static final Logger log = LoggerFactory.getLogger(WorkspaceStateWriter.class);
@@ -47,13 +48,18 @@ public class WorkspaceStateWriter implements IMavenProjectChangedListener {
public WorkspaceStateWriter(MavenProjectManager projectManager) {
this.projectManager = projectManager;
}
-
+
public void mavenProjectChanged(MavenProjectChangedEvent[] events, IProgressMonitor monitor) {
try {
Properties state = new Properties();
IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
for(IMavenProjectFacade projectFacade : projectManager.getProjects()) {
+ if(!projectFacade.getProject().isAccessible()) {
+ log.debug("Project registry contains closed project {}", projectFacade.getProject());
+ // this is actually a bug somewhere in registry refresh logic, closed projects should not be there
+ continue;
+ }
try {
Artifact artifact = projectFacade.getMavenProject(monitor).getArtifact();
IFile pomFile = projectFacade.getPom();
@@ -66,12 +72,13 @@ public class WorkspaceStateWriter implements IMavenProjectChangedListener {
}
}
IResource outputLocation = root.findMember(projectFacade.getOutputLocation());
- if (!"pom".equals(artifact.getType()) && outputLocation != null && outputLocation.exists()) { //$NON-NLS-1$
+ if(!"pom".equals(artifact.getType()) && outputLocation != null && outputLocation.exists()) { //$NON-NLS-1$
String extension = artifact.getArtifactHandler().getExtension();
- String key = artifact.getGroupId() + ":" + artifact.getArtifactId() + ":" + extension + ":" + artifact.getBaseVersion(); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ String key = artifact.getGroupId()
+ + ":" + artifact.getArtifactId() + ":" + extension + ":" + artifact.getBaseVersion(); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
state.put(key, outputLocation.getLocation().toFile().getCanonicalPath());
}
- } catch (CoreException ex) {
+ } catch(CoreException ex) {
log.error("Error writing workspace state file", ex);
}
}

Back to the top