remove index listener and event from listed API
diff --git a/bundles/org.eclipse.jst.jsp.core/component.xml b/bundles/org.eclipse.jst.jsp.core/component.xml
index 867dbe7..eacf9aa 100644
--- a/bundles/org.eclipse.jst.jsp.core/component.xml
+++ b/bundles/org.eclipse.jst.jsp.core/component.xml
@@ -4,10 +4,10 @@
 	<plugin id="org.eclipse.jst.jsp.core" fragment="false" />
 	<package name="org.eclipse.jst.jsp.core.taglib" api="false">
 		<type name="IJarRecord" implement="false" />
-		<type name="ITagDirRecord" implement="false" />
-		<type name="ITaglibIndexListener" implement="true" />
+		<!-- <type name="ITagDirRecord" implement="false" /> -->
+		<!-- <type name="ITaglibIndexListener" implement="true" /> -->
 		<type name="ITaglibRecord" implement="false" />
-		<type name="ITaglibRecordEvent" implement="false" />
+		<!-- <type name="ITaglibRecordEvent" implement="false" /> -->
 		<type name="ITLDRecord" implement="false" />
 		<type name="IURLRecord" implement="false" />
 		<type name="TaglibIndex" subclass="false" instantiate="false" />
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/IJarRecord.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/IJarRecord.java
index c854800..218baf2 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/IJarRecord.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/IJarRecord.java
@@ -19,6 +19,8 @@
  * <p>
  * This interface is not intended to be implemented by clients.
  * </p>
+ * 
+ * @since 1.0
  */
 
 public interface IJarRecord extends ITaglibRecord {
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/ITLDRecord.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/ITLDRecord.java
index eae4e0d..7c1923c 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/ITLDRecord.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/ITLDRecord.java
@@ -18,6 +18,8 @@
  * <p>
  * This interface is not intended to be implemented by clients.
  * </p>
+ * 
+ * @since 1.0
  */
 public interface ITLDRecord extends ITaglibRecord {
 
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/ITagDirRecord.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/ITagDirRecord.java
index 5236f86..7684180 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/ITagDirRecord.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/ITagDirRecord.java
@@ -16,6 +16,8 @@
  * <p>
  * This interface is not intended to be implemented by clients.
  * </p>
+ * 
+ * @since 1.0
  */
 public interface ITagDirRecord extends ITaglibRecord {
 
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/ITaglibIndexListener.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/ITaglibIndexListener.java
index 7efc63d..0c28ff5 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/ITaglibIndexListener.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/ITaglibIndexListener.java
@@ -12,6 +12,19 @@
 package org.eclipse.jst.jsp.core.taglib;
 
 
+/**
+ * A listener for changes in the index's records.
+ * 
+ * <p>
+ * This interface is not intended to be implemented by clients.
+ * </p>
+ */
 public interface ITaglibIndexListener {
+
+	/**
+	 * Notifies this listener that an ITaglibRecordEvent has occurred
+	 * 
+	 * @param event
+	 */
 	void indexChanged(ITaglibRecordEvent event);
 }
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/ITaglibRecord.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/ITaglibRecord.java
index b01a55f..050392f 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/ITaglibRecord.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/ITaglibRecord.java
@@ -23,6 +23,8 @@
  *      <p>
  *      This interface is not intended to be implemented by clients.
  *      </p>
+ * 
+ * @since 1.0
  */
 public interface ITaglibRecord {
 	/** A record to a .jar file referenced "1.1 style". */
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/ITaglibRecordEvent.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/ITaglibRecordEvent.java
index 3cc5605..c1d17ca 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/ITaglibRecordEvent.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/ITaglibRecordEvent.java
@@ -15,6 +15,10 @@
 
 /**
  * Describes changes to the known records within the TaglibIndex.
+ * 
+ * <p>
+ * This interface is not intended to be implemented by clients.
+ * </p>
  */
 public interface ITaglibRecordEvent {
 
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/IURLRecord.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/IURLRecord.java
index 5dc187e..8488a60 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/IURLRecord.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/IURLRecord.java
@@ -18,6 +18,8 @@
  * <p>
  * This interface is not intended to be implemented by clients.
  * </p>
+ * 
+ * @since 1.0
  */
 public interface IURLRecord extends ITaglibRecord {
 
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 e2ed719..01ef81d 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
@@ -1008,6 +1008,9 @@
 					catch (IOException e) {
 					}
 				}
+				else {
+					Logger.log(Logger.ERROR, getClass().getName() + "could not read resource " + jar.getFullPath()); //$NON-NLS-1$
+				}
 			}
 		}
 		if (jarRecord.has11TLD) {
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 2b94909..41f56df 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
@@ -49,6 +49,8 @@
  * to ITaglibIndexListeners during each workbench session. REMOVE events are
  * not fired on workbench shutdown. The record's contents should be examined
  * for any further information.
+ * 
+ * @since 1.0
  */
 public final class TaglibIndex {
 
@@ -221,7 +223,9 @@
 								try {
 									if (deltas[i] != null && deltas[i].getKind() != IResourceDelta.REMOVED && projects[i].isAccessible()) {
 										ProjectDescription description = createDescription(projects[i]);
-										deltas[i].accept(description.getVisitor());
+										synchronized (projects[i]) {
+											deltas[i].accept(description.getVisitor());
+										}
 									}
 									if (!projects[i].isAccessible() || (deltas[i] != null && deltas[i].getKind() == IResourceDelta.REMOVED)) {
 										if (_debugIndexCreation) {