[398698] JSP include from other project - false error
diff --git a/tests/org.eclipse.jst.jsp.core.tests/src/org/eclipse/jst/jsp/core/tests/JSPCoreTestSuite.java b/tests/org.eclipse.jst.jsp.core.tests/src/org/eclipse/jst/jsp/core/tests/JSPCoreTestSuite.java
index 1069123..e110efa 100644
--- a/tests/org.eclipse.jst.jsp.core.tests/src/org/eclipse/jst/jsp/core/tests/JSPCoreTestSuite.java
+++ b/tests/org.eclipse.jst.jsp.core.tests/src/org/eclipse/jst/jsp/core/tests/JSPCoreTestSuite.java
@@ -29,6 +29,7 @@
 import org.eclipse.jst.jsp.core.tests.translation.JSPJavaTranslatorCoreTest;
 import org.eclipse.jst.jsp.core.tests.translation.JSPJavaTranslatorCustomTagTest;
 import org.eclipse.jst.jsp.core.tests.translation.JSPTranslatorPersistenceTest;
+import org.eclipse.jst.jsp.core.tests.util.FMCSTests;
 import org.eclipse.jst.jsp.core.tests.validation.JSPActionValidatorTest;
 import org.eclipse.jst.jsp.core.tests.validation.JSPBatchValidatorTest;
 import org.eclipse.jst.jsp.core.tests.validation.JSPDirectiveValidatorTest;
@@ -71,6 +72,7 @@
 		addTest(new TestSuite(JSPJavaValidatorTest.class, "Java Validator Tests"));
 		addTest(new TestSuite(TestImportedNodes.class, "Imported Nodes Tests"));
 		addTest(new TestSuite(TestFixedCMDocuments.class, "Fixed CMDocument Creation Tests"));
+		addTest(new TestSuite(FMCSTests.class, "Facet and Module Core support Tests"));
 		addTest(new TestSuite(TestTaglibCMTests.class, "Custom Tag Library Content Model Tests"));
 		addTest(new TestSuite(JSPActionValidatorTest.class, "Action Validator Tests"));
 		addTest(new TestSuite(JSPBatchValidatorTest.class, "Batch Validator Tests"));
diff --git a/tests/org.eclipse.jst.jsp.core.tests/src/org/eclipse/jst/jsp/core/tests/taglibindex/BundleResourceUtil.java b/tests/org.eclipse.jst.jsp.core.tests/src/org/eclipse/jst/jsp/core/tests/taglibindex/BundleResourceUtil.java
index c3f5573..27e2622 100644
--- a/tests/org.eclipse.jst.jsp.core.tests/src/org/eclipse/jst/jsp/core/tests/taglibindex/BundleResourceUtil.java
+++ b/tests/org.eclipse.jst.jsp.core.tests/src/org/eclipse/jst/jsp/core/tests/taglibindex/BundleResourceUtil.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2013 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -147,9 +147,11 @@
 							IPath path = fullTargetPath.append(nextEntry.getName());
 
 							if (nextEntry.isDirectory()) {
-								IFolder folder = ResourcesPlugin.getWorkspace().getRoot().getFolder(path);
-								if (!folder.exists()) {
-									folder.create(true, true, null);
+								if (path.segmentCount() > 1) {
+									IFolder folder = ResourcesPlugin.getWorkspace().getRoot().getFolder(path);
+									if (!folder.exists()) {
+										folder.create(true, true, null);
+									}
 								}
 							}
 							else {
diff --git a/tests/org.eclipse.jst.jsp.core.tests/src/org/eclipse/jst/jsp/core/tests/util/FMCSTests.java b/tests/org.eclipse.jst.jsp.core.tests/src/org/eclipse/jst/jsp/core/tests/util/FMCSTests.java
new file mode 100644
index 0000000..d0dbb0d
--- /dev/null
+++ b/tests/org.eclipse.jst.jsp.core.tests/src/org/eclipse/jst/jsp/core/tests/util/FMCSTests.java
@@ -0,0 +1,60 @@
+/*******************************************************************************
+ * Copyright (c) 2007, 2011 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jst.jsp.core.tests.util;
+
+import java.io.IOException;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.jst.jsp.core.internal.util.FacetModuleCoreSupport;
+import org.eclipse.jst.jsp.core.tests.taglibindex.BundleResourceUtil;
+
+public class FMCSTests extends TestCase {
+
+	public FMCSTests(String name) {
+		super(name);
+	}
+
+	public FMCSTests() {
+		super();
+	}
+
+	public static Test suite() {
+		return new FMCSTests();
+	}
+
+	private IProject createProject(String name) throws CoreException {
+		IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(name);
+		if (!project.exists())
+			// Create new project
+			project = BundleResourceUtil.createSimpleProject(name, null, null);
+		else if (!project.isAccessible())
+			project.open(null);
+		return project;
+	}
+
+	public void testFacetModuleAbstractionWithWebFragment() throws IOException, CoreException {
+		IProject bd1 = createProject("BugDemo1");
+		IProject bd2 = createProject("BugDemo2");
+		BundleResourceUtil.copyBundleZippedEntriesIntoWorkspace("/testfiles/jsp_include_false_error.zip", Path.ROOT);
+
+		bd1.refreshLocal(IResource.DEPTH_INFINITE, null);
+		bd2.refreshLocal(IResource.DEPTH_INFINITE, null);
+
+		assertEquals("/BugDemo2/src/META-INF/resources/referenced.jsp", "" + FacetModuleCoreSupport.resolve(new Path("BugDemo1/WebContent/index.jsp"), "referenced.jsp"));
+	}
+}
diff --git a/tests/org.eclipse.jst.jsp.core.tests/testfiles/jsp_include_false_error.zip b/tests/org.eclipse.jst.jsp.core.tests/testfiles/jsp_include_false_error.zip
new file mode 100644
index 0000000..3431762
--- /dev/null
+++ b/tests/org.eclipse.jst.jsp.core.tests/testfiles/jsp_include_false_error.zip
Binary files differ