[157816] TaglibIndex in WTP 1.5.1 logs exceptions when Java based projects are closed or deleted
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/TaglibIndex.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/TaglibIndex.java
index 02e52b7..bfcd566 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/TaglibIndex.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/TaglibIndex.java
@@ -96,8 +96,28 @@
else {
IJavaElementDelta[] deltas = delta.getAffectedChildren();
if (deltas.length == 0) {
- IJavaElement proj = element;
- handleClasspathChange((IJavaProject) proj, forceUpdate);
+ /*
+ * If project is being deleted or closed, remove the
+ * stored description
+ */
+ if (delta.getKind() == IJavaElementDelta.REMOVED || (delta.getFlags() & IJavaElementDelta.F_CLOSED) != 0) {
+ IResource project = ((IJavaProject) element).getResource();
+ ProjectDescription description = (ProjectDescription) fProjectDescriptions.remove(project);
+ if (description != null) {
+ if (_debugIndexCreation) {
+ Logger.log(Logger.INFO, "removing index of " + description.fProject.getName()); //$NON-NLS-1$
+ }
+ description.clear();
+ }
+ }
+ /*
+ * If project is not being deleted and not being
+ * closed, process the project
+ */
+ else {
+ IJavaElement proj = element;
+ handleClasspathChange((IJavaProject) proj, forceUpdate);
+ }
}
else {
for (int i = 0; i < deltas.length; i++) {