[345778] Duplicate tld entries in taglib index
diff --git a/bundles/org.eclipse.jst.jsp.core/META-INF/MANIFEST.MF b/bundles/org.eclipse.jst.jsp.core/META-INF/MANIFEST.MF
index 929ba6d..298ab92 100644
--- a/bundles/org.eclipse.jst.jsp.core/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.jst.jsp.core/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.jst.jsp.core; singleton:=true
-Bundle-Version: 1.2.305.qualifier
+Bundle-Version: 1.2.306.qualifier
Bundle-Activator: org.eclipse.jst.jsp.core.internal.JSPCorePlugin
Bundle-Vendor: %providerName
Bundle-Localization: plugin
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 24b3471..79c2261 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
@@ -239,7 +239,7 @@
boolean isMappedInWebXML;
boolean isConsistent = false;
IPath location;
- List urlRecords;
+ Collection urlRecords;
public boolean equals(Object obj) {
if (!(obj instanceof JarRecord))
@@ -280,7 +280,7 @@
return info.uri;
}
- public List getURLRecords() {
+ public Collection getURLRecords() {
return urlRecords;
}
@@ -289,8 +289,8 @@
s.append(location);
if (urlRecords.size() > 0) {
s.append('\n');//$NON-NLS-1$
- for (int i = 0; i < urlRecords.size(); i++) {
- s.append(urlRecords.get(i));
+ for (Iterator it = urlRecords.iterator(); it.hasNext();) {
+ s.append(it.next());
s.append('\n');//$NON-NLS-1$
}
}
@@ -361,7 +361,7 @@
public boolean equals(Object obj) {
if (!(obj instanceof TaglibInfo))
return false;
- return ((TaglibInfo) obj).jspVersion == jspVersion && ((TaglibInfo) obj).description.equals(description) && ((TaglibInfo) obj).largeIcon.equals(largeIcon) && ((TaglibInfo) obj).shortName.equals(shortName) && ((TaglibInfo) obj).smallIcon.equals(smallIcon) && ((TaglibInfo) obj).tlibVersion.equals(tlibVersion) && ((TaglibInfo) obj).uri.equals(uri);
+ return ((TaglibInfo) obj).jspVersion.equals(jspVersion) && ((TaglibInfo) obj).description.equals(description) && ((TaglibInfo) obj).largeIcon.equals(largeIcon) && ((TaglibInfo) obj).shortName.equals(shortName) && ((TaglibInfo) obj).smallIcon.equals(smallIcon) && ((TaglibInfo) obj).tlibVersion.equals(tlibVersion) && ((TaglibInfo) obj).uri.equals(uri);
}
public String getDescription() {
@@ -459,6 +459,10 @@
return ((URLRecord) obj).baseLocation.equals(baseLocation) && ((URLRecord) obj).url.equals(url) && ((URLRecord) obj).info.equals(info);
}
+ public int hashCode() {
+ return baseLocation.hashCode() + url.hashCode() + (isExported ? 1 : 0);
+ }
+
public String getBaseLocation() {
return baseLocation;
}
@@ -902,7 +906,7 @@
record = new JarRecord();
record.info = new TaglibInfo();
record.location = new Path(fileLocation);
- record.urlRecords = new ArrayList();
+ record.urlRecords = new HashSet(0);
fJarRecords.put(fileLocation, record);
}
return record;
@@ -2034,11 +2038,11 @@
InputStream tldStream = JarUtilities.getInputStream(urlRecord.url);
if(tldStream != null) {
- libraryRecord.urlRecords.add(urlRecord);
TaglibInfo info = extractInfo(urlRecord.url.toString(), tldStream);
if (info != null) {
urlRecord.info = info;
}
+ libraryRecord.urlRecords.add(urlRecord);
try {
tldStream.close();
}