[121991] Exception in log when saving incorrect web.xml
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/ProjectDescription.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/ProjectDescription.java
index 95ffb8f..916ec23 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/ProjectDescription.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/ProjectDescription.java
@@ -287,7 +287,7 @@
 		}
 
 		public String toString() {
-			return "TLDRecord: " + path + " <-> " + getURI(); //$NON-NLS-1$ //$NON-NLS-2$
+			return "TLDRecord: " + getURI() + " <-> " + path; //$NON-NLS-1$ //$NON-NLS-2$
 		}
 	}
 
@@ -1068,6 +1068,7 @@
 			DocumentProvider provider = new DocumentProvider();
 			provider.setInputStream(webxmlContents);
 			provider.setValidating(false);
+			provider.setRootElementName("web-app"); //$NON-NLS-1$
 			provider.setBaseReference(webxml.getParent().getLocation().toString());
 			document = provider.getDocument();
 		}
@@ -1106,7 +1107,9 @@
 			if (path.segmentCount() > 1) {
 				IFile tldResource = ResourcesPlugin.getWorkspace().getRoot().getFile(path);
 				if (tldResource.isAccessible()) {
-					ITLDRecord record = createTLDRecord(tldResource);
+					TLDRecord record = createTLDRecord(tldResource);
+					// the stored URI should reflect the web.xml's value
+					record.info.uri = taglibUri;
 					webxmlRecord.tldRecords.add(record);
 					getImplicitReferences(webxml.getFullPath().toString()).put(taglibUri, record);
 					if (_debugIndexCreation)
@@ -1116,4 +1119,4 @@
 			}
 		}
 	}
-}
+}
\ No newline at end of file