[nobug] Various fixes
diff --git a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/integration/EditModel.java b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/integration/EditModel.java
index a5532d1..7bddf4a 100644
--- a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/integration/EditModel.java
+++ b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/integration/EditModel.java
@@ -893,7 +893,7 @@
 		boolean processed = false;
 		for (int i = 0; i < size; i++) {
 			res = (Resource) someResources.get(i);
-			if (isInterrestedInResource(res)) {
+			if ((res != null) && (isInterrestedInResource(res))) {
 				processResource(res);
 				processed = true;
 			}
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/resources/VirtualComponent.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/resources/VirtualComponent.java
index 933f448..09d550f 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/resources/VirtualComponent.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/resources/VirtualComponent.java
@@ -56,14 +56,16 @@
 	public boolean exists() { 
 		StructureEdit core = null;
 		try {
-			core = StructureEdit.getStructureEditForRead(getProject());
-			WorkbenchComponent component = core.findComponentByName(getName()); 
-			return component != null;
+			if (getProject() != null && getName() != null) {
+				core = StructureEdit.getStructureEditForRead(getProject());
+				WorkbenchComponent component = core.findComponentByName(getName()); 
+				return component != null;
+			}
 		} finally {
 			if(core != null)
 				core.dispose();
 		}
-		
+		return false;
 	}
 	
 	public String getComponentTypeId() { 
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/resources/ComponentHandle.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/resources/ComponentHandle.java
index 258ecba..41dfc13 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/resources/ComponentHandle.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/resources/ComponentHandle.java
@@ -12,6 +12,7 @@
 
 import org.eclipse.core.resources.IProject;
 import org.eclipse.emf.common.util.URI;
+import org.eclipse.wst.common.componentcore.ComponentCore;
 import org.eclipse.wst.common.componentcore.UnresolveableURIException;
 import org.eclipse.wst.common.componentcore.internal.StructureEdit;
 
@@ -149,4 +150,8 @@
 		return false;
 	}
 
+	public IVirtualComponent createComponent() {
+		return ComponentCore.createComponent(getProject(),getName());
+	}
+
 }