[148717] TaglibIndex does not return records for taglibs defined in web.xml that point to jars
diff --git a/tests/org.eclipse.jst.jsp.core.tests/src/org/eclipse/jst/jsp/core/tests/taglibindex/TestIndex.java b/tests/org.eclipse.jst.jsp.core.tests/src/org/eclipse/jst/jsp/core/tests/taglibindex/TestIndex.java
index 841b4e7..fa44379 100644
--- a/tests/org.eclipse.jst.jsp.core.tests/src/org/eclipse/jst/jsp/core/tests/taglibindex/TestIndex.java
+++ b/tests/org.eclipse.jst.jsp.core.tests/src/org/eclipse/jst/jsp/core/tests/taglibindex/TestIndex.java
@@ -16,8 +16,11 @@
 
 import junit.framework.TestCase;
 
+import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.Path;
+import org.eclipse.jst.jsp.core.taglib.IJarRecord;
 import org.eclipse.jst.jsp.core.taglib.ITaglibRecord;
 import org.eclipse.jst.jsp.core.taglib.IURLRecord;
 import org.eclipse.jst.jsp.core.taglib.TaglibIndex;
@@ -181,4 +184,39 @@
 		records = TaglibIndex.getAvailableTaglibRecords(new Path("/bug_118251-g/Web Content/WEB-INF/web.xml"));
 		assertEquals("wrong number of taglib records found after copying", 4, records.length);
 	}
+
+	public void test_148717_a() throws Exception {
+		IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject("bug_148717");
+		if (!project.exists()) {
+			// Create new project
+			project = BundleResourceUtil.createSimpleProject("bug_148717", null, null);
+			assertTrue(project.exists());
+			BundleResourceUtil.copyBundleEntriesIntoWorkspace("/testfiles/bug_148717", "/bug_148717");
+		}
+
+		IFile file = project.getFile("/WebContent/WEB-INF/lib/internal.jar");
+		assertTrue(file.exists());
+
+		String uri = "http://example.com/external-uri";
+		ITaglibRecord taglibRecord = TaglibIndex.resolve("/bug_148717/WebContent/", uri, false);
+		assertNotNull("record not found for " + uri, taglibRecord);
+		assertEquals(ITaglibRecord.JAR, taglibRecord.getRecordType());
+		assertEquals(uri, ((IJarRecord) taglibRecord).getURI());
+
+		ITaglibRecord taglibRecord2 = null;
+		ITaglibRecord[] records = TaglibIndex.getAvailableTaglibRecords(new Path("/bug_148717/WebContent/"));
+		for (int i = 0; i < records.length; i++) {
+			int type = records[i].getRecordType();
+			switch (type) {
+				case ITaglibRecord.JAR : {
+					taglibRecord2 = records[i];
+				}
+					break;
+			}
+		}
+		assertNotNull("record not returned for " + uri, taglibRecord2);
+		assertEquals(ITaglibRecord.JAR, taglibRecord2.getRecordType());
+		assertEquals(uri, ((IJarRecord) taglibRecord2).getURI());
+	}
+
 }
\ No newline at end of file
diff --git a/tests/org.eclipse.jst.jsp.core.tests/testfiles/bug_148717/.classpath b/tests/org.eclipse.jst.jsp.core.tests/testfiles/bug_148717/.classpath
new file mode 100644
index 0000000..cc2ae42
--- /dev/null
+++ b/tests/org.eclipse.jst.jsp.core.tests/testfiles/bug_148717/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="con" path="org.eclipse.jst.server.core.container"/>
+	<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/>
+	<classpathentry kind="output" path="build/classes"/>
+</classpath>
diff --git a/tests/org.eclipse.jst.jsp.core.tests/testfiles/bug_148717/.project b/tests/org.eclipse.jst.jsp.core.tests/testfiles/bug_148717/.project
new file mode 100644
index 0000000..ac7bfe4
--- /dev/null
+++ b/tests/org.eclipse.jst.jsp.core.tests/testfiles/bug_148717/.project
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>bug_148717</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.wst.common.project.facet.core.builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
+		<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
+	</natures>
+</projectDescription>
diff --git a/tests/org.eclipse.jst.jsp.core.tests/testfiles/bug_148717/.settings/org.eclipse.jdt.core.prefs b/tests/org.eclipse.jst.jsp.core.tests/testfiles/bug_148717/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..fe8bc9f
--- /dev/null
+++ b/tests/org.eclipse.jst.jsp.core.tests/testfiles/bug_148717/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+#Mon May 01 13:41:18 EDT 2006
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.4
+org.eclipse.jdt.core.compiler.compliance=1.4
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.4
diff --git a/tests/org.eclipse.jst.jsp.core.tests/testfiles/bug_148717/.settings/org.eclipse.jst.common.project.facet.core.prefs b/tests/org.eclipse.jst.jsp.core.tests/testfiles/bug_148717/.settings/org.eclipse.jst.common.project.facet.core.prefs
new file mode 100644
index 0000000..ffc0129
--- /dev/null
+++ b/tests/org.eclipse.jst.jsp.core.tests/testfiles/bug_148717/.settings/org.eclipse.jst.common.project.facet.core.prefs
@@ -0,0 +1,4 @@
+#Mon May 01 13:41:24 EDT 2006
+classpath.helper/org.eclipse.jdt.launching.JRE_CONTAINER\:\:org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType\:\:1.5.0_03/owners=jst.java\:5.0
+classpath.helper/org.eclipse.jst.server.core.container\:\:org.eclipse.jst.server.tomcat.runtimeTarget\:\:Apache\ Tomcat\ v5.5.9/owners=jst.web\:2.4
+eclipse.preferences.version=1
diff --git a/tests/org.eclipse.jst.jsp.core.tests/testfiles/bug_148717/.settings/org.eclipse.wst.common.component b/tests/org.eclipse.jst.jsp.core.tests/testfiles/bug_148717/.settings/org.eclipse.wst.common.component
new file mode 100644
index 0000000..76ed56f
--- /dev/null
+++ b/tests/org.eclipse.jst.jsp.core.tests/testfiles/bug_148717/.settings/org.eclipse.wst.common.component
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project-modules id="moduleCoreId" project-version="1.5.0">
+<wb-module deploy-name="bug_148717">
+<wb-resource deploy-path="/" source-path="/WebContent"/>
+<wb-resource deploy-path="/WEB-INF/classes" source-path="/src"/>
+<property name="context-root" value="bug_148717"/>
+<property name="java-output-path" value="build/classes"/>
+</wb-module>
+</project-modules>
diff --git a/tests/org.eclipse.jst.jsp.core.tests/testfiles/bug_148717/.settings/org.eclipse.wst.common.project.facet.core.xml b/tests/org.eclipse.jst.jsp.core.tests/testfiles/bug_148717/.settings/org.eclipse.wst.common.project.facet.core.xml
new file mode 100644
index 0000000..39b9b4c
--- /dev/null
+++ b/tests/org.eclipse.jst.jsp.core.tests/testfiles/bug_148717/.settings/org.eclipse.wst.common.project.facet.core.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<faceted-project>
+  <runtime name="Apache Tomcat v5.5.9"/>
+  <fixed facet="jst.java"/>
+  <fixed facet="jst.web"/>
+  <installed facet="jst.java" version="5.0"/>
+  <installed facet="jst.web" version="2.4"/>
+</faceted-project>
diff --git a/tests/org.eclipse.jst.jsp.core.tests/testfiles/bug_148717/WebContent/META-INF/MANIFEST.MF b/tests/org.eclipse.jst.jsp.core.tests/testfiles/bug_148717/WebContent/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..254272e
--- /dev/null
+++ b/tests/org.eclipse.jst.jsp.core.tests/testfiles/bug_148717/WebContent/META-INF/MANIFEST.MF
@@ -0,0 +1,3 @@
+Manifest-Version: 1.0
+Class-Path: 
+
diff --git a/tests/org.eclipse.jst.jsp.core.tests/testfiles/bug_148717/WebContent/WEB-INF/lib/internal.jar b/tests/org.eclipse.jst.jsp.core.tests/testfiles/bug_148717/WebContent/WEB-INF/lib/internal.jar
new file mode 100644
index 0000000..ebad27b
--- /dev/null
+++ b/tests/org.eclipse.jst.jsp.core.tests/testfiles/bug_148717/WebContent/WEB-INF/lib/internal.jar
Binary files differ
diff --git a/tests/org.eclipse.jst.jsp.core.tests/testfiles/bug_148717/WebContent/WEB-INF/web.xml b/tests/org.eclipse.jst.jsp.core.tests/testfiles/bug_148717/WebContent/WEB-INF/web.xml
new file mode 100644
index 0000000..1853669
--- /dev/null
+++ b/tests/org.eclipse.jst.jsp.core.tests/testfiles/bug_148717/WebContent/WEB-INF/web.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<web-app id="prj119576_c" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
+	<display-name>prj119576_c</display-name>
+	<welcome-file-list>
+		<welcome-file>index.html</welcome-file>
+		<welcome-file>index.htm</welcome-file>
+		<welcome-file>index.jsp</welcome-file>
+		<welcome-file>default.html</welcome-file>
+		<welcome-file>default.htm</welcome-file>
+		<welcome-file>default.jsp</welcome-file>
+	</welcome-file-list>
+	<taglib>
+		<taglib-uri>http://example.com/external-uri</taglib-uri>
+		<taglib-location>/WEB-INF/lib/internal.jar</taglib-location>
+	</taglib>
+</web-app>
diff --git a/tests/org.eclipse.jst.jsp.core.tests/testfiles/bug_148717/bin/.keepme b/tests/org.eclipse.jst.jsp.core.tests/testfiles/bug_148717/bin/.keepme
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/org.eclipse.jst.jsp.core.tests/testfiles/bug_148717/bin/.keepme
diff --git a/tests/org.eclipse.jst.jsp.core.tests/testfiles/bug_148717/build/classes/.keepme b/tests/org.eclipse.jst.jsp.core.tests/testfiles/bug_148717/build/classes/.keepme
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/org.eclipse.jst.jsp.core.tests/testfiles/bug_148717/build/classes/.keepme
diff --git a/tests/org.eclipse.jst.jsp.core.tests/testfiles/bug_148717/src/.keepme b/tests/org.eclipse.jst.jsp.core.tests/testfiles/bug_148717/src/.keepme
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/org.eclipse.jst.jsp.core.tests/testfiles/bug_148717/src/.keepme