[162239] NullPointerException in taglib.ProjectDescription when delete jar from project
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 799f760..84092f0 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
@@ -450,7 +450,7 @@
 		}
 
 		public String toString() {
-			return "URLRecord: " + baseLocation + " <-> " + getURI(); //$NON-NLS-1$ //$NON-NLS-2$
+			return "URLRecord: (exported=ha"+isExported+") " + baseLocation + " <-> " + getURI(); //$NON-NLS-1$ //$NON-NLS-2$
 		}
 	}
 
@@ -1163,7 +1163,16 @@
 			if (libPath != null) {
 				boolean fragmentisExported = true;
 				try {
-					fragmentisExported = ((IPackageFragmentRoot) element).getRawClasspathEntry().isExported();
+					IClasspathEntry rawClasspathEntry = ((IPackageFragmentRoot) element).getRawClasspathEntry();
+					/*
+					 * null may also be returned for deletions depending on
+					 * resource/build path notification order. If it's null,
+					 * it's been deleted and whether it's exported won't
+					 * really matter
+					 */
+					if(rawClasspathEntry != null) {
+						fragmentisExported = rawClasspathEntry.isExported();
+					}
 				}
 				catch (JavaModelException e) {
 					Logger.logException("Problem handling build path entry for " + element.getPath(), e); //$NON-NLS-1$
@@ -1975,6 +1984,9 @@
 						}
 						record = jarRecord;
 						// the stored URI should reflect the web.xml's value
+						if(jarRecord.info == null) {
+							jarRecord.info = new TaglibInfo();
+						}
 						jarRecord.info.uri = taglibUri;
 						jarRecord.isMappedInWebXML = true;
 						if (_debugIndexCreation)