Fix for getName() API throwing NPE after project is deleted when accessed by listeners of TigerstripeWorkspaceNotifier.
Change-Id: Idac8c4966725fbdf73d8420672c9f3f706268e5c
diff --git a/core/org.eclipse.tigerstripe.core/src/main/java/org/eclipse/tigerstripe/workbench/internal/api/impl/AbstractTigerstripeProjectHandle.java b/core/org.eclipse.tigerstripe.core/src/main/java/org/eclipse/tigerstripe/workbench/internal/api/impl/AbstractTigerstripeProjectHandle.java
index d0d1904..05a6b3f 100644
--- a/core/org.eclipse.tigerstripe.core/src/main/java/org/eclipse/tigerstripe/workbench/internal/api/impl/AbstractTigerstripeProjectHandle.java
+++ b/core/org.eclipse.tigerstripe.core/src/main/java/org/eclipse/tigerstripe/workbench/internal/api/impl/AbstractTigerstripeProjectHandle.java
@@ -34,9 +34,6 @@
private URI projectContainerURI;
- // The folder for this project handle
- protected File projectContainer;
-
public AbstractTigerstripeProjectHandle(URI projectContainerURI) {
this.projectContainerURI = projectContainerURI;
@@ -49,11 +46,6 @@
handleTStamp = file.lastModified();
}
}
-
- public void dispose() {
- this.projectContainer = null;
- this.projectContainerURI = null;
- }
public File getBaseDir() {
if (getProjectContainerURI() != null)
diff --git a/core/org.eclipse.tigerstripe.core/src/main/java/org/eclipse/tigerstripe/workbench/internal/api/impl/BaseTigerstripeModelProject.java b/core/org.eclipse.tigerstripe.core/src/main/java/org/eclipse/tigerstripe/workbench/internal/api/impl/BaseTigerstripeModelProject.java
index 748ce1a..937355b 100644
--- a/core/org.eclipse.tigerstripe.core/src/main/java/org/eclipse/tigerstripe/workbench/internal/api/impl/BaseTigerstripeModelProject.java
+++ b/core/org.eclipse.tigerstripe.core/src/main/java/org/eclipse/tigerstripe/workbench/internal/api/impl/BaseTigerstripeModelProject.java
@@ -148,8 +148,7 @@
*/
@Override
protected boolean findProjectDescriptor() {
- projectContainer = new File(getProjectContainerURI());
- return new File(projectContainer, "tigerstripe.xml").exists();
+ return new File(new File(getProjectContainerURI()), "tigerstripe.xml").exists();
}
protected IM1Generator getGenerator(ITigerstripeModelProject project, IM1RunConfig config) {
diff --git a/plugins/org.eclipse.tigerstripe.workbench.base/src/java/org/eclipse/tigerstripe/workbench/internal/api/impl/TigerstripeProjectHandle.java b/plugins/org.eclipse.tigerstripe.workbench.base/src/java/org/eclipse/tigerstripe/workbench/internal/api/impl/TigerstripeProjectHandle.java
index 5122371..0b2e920 100644
--- a/plugins/org.eclipse.tigerstripe.workbench.base/src/java/org/eclipse/tigerstripe/workbench/internal/api/impl/TigerstripeProjectHandle.java
+++ b/plugins/org.eclipse.tigerstripe.workbench.base/src/java/org/eclipse/tigerstripe/workbench/internal/api/impl/TigerstripeProjectHandle.java
@@ -11,7 +11,6 @@
package org.eclipse.tigerstripe.workbench.internal.api.impl;
import java.io.File;
-import java.io.FilenameFilter;
import java.io.StringReader;
import java.net.URI;
import java.util.ArrayList;
@@ -172,27 +171,6 @@
return result;
}
- /**
- * Tries and locate the project descriptor for this project
- *
- * @return
- */
- @Override
- protected boolean findProjectDescriptor() {
- projectContainer = new File(getProjectContainerURI());
- FilenameFilter filter = new FilenameFilter() {
-
- public boolean accept(File arg0, String arg1) {
- return "tigerstripe.xml".equals(arg1);
- }
-
- };
-
- String[] desc = projectContainer.list(filter);
-
- return desc != null && desc.length == 1;
- }
-
public void addPluginConfig(IPluginConfig ref) throws TigerstripeException {
assertSet();
diff --git a/plugins/org.eclipse.tigerstripe.workbench.base/src/java/org/eclipse/tigerstripe/workbench/internal/api/impl/pluggable/GeneratorProjectHandle.java b/plugins/org.eclipse.tigerstripe.workbench.base/src/java/org/eclipse/tigerstripe/workbench/internal/api/impl/pluggable/GeneratorProjectHandle.java
index c3356b8..8c82c93 100644
--- a/plugins/org.eclipse.tigerstripe.workbench.base/src/java/org/eclipse/tigerstripe/workbench/internal/api/impl/pluggable/GeneratorProjectHandle.java
+++ b/plugins/org.eclipse.tigerstripe.workbench.base/src/java/org/eclipse/tigerstripe/workbench/internal/api/impl/pluggable/GeneratorProjectHandle.java
@@ -11,9 +11,7 @@
package org.eclipse.tigerstripe.workbench.internal.api.impl.pluggable;
import java.io.File;
-import java.io.FilenameFilter;
import java.net.URI;
-import java.util.List;
import org.eclipse.core.resources.IContainer;
import org.eclipse.core.resources.IMarker;
@@ -237,20 +235,9 @@
}
@Override
- protected boolean findProjectDescriptor() {
- projectContainer = new File(getProjectContainerURI());
- FilenameFilter filter = new FilenameFilter() {
-
- public boolean accept(File arg0, String arg1) {
- return getDescriptorFilename().equals(arg1);
- }
-
- };
-
- String[] desc = projectContainer.list(filter);
-
- return desc != null && desc.length == 1;
- }
+ protected boolean findProjectDescriptor() {
+ return new File(new File(getProjectContainerURI()), getDescriptorFilename()).exists();
+ }
@Override
public boolean exists() {