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() {