--- a/langtools/src/share/classes/com/sun/tools/javac/file/ZipFileIndexArchive.java Tue Oct 13 15:26:30 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/file/ZipFileIndexArchive.java Wed Oct 14 15:41:28 2009 -0700
@@ -219,17 +219,27 @@
return name.equals(cn + k.extension);
}
+ /**
+ * Check if two file objects are equal.
+ * Two ZipFileIndexFileObjects are equal if the absolute paths of the underlying
+ * zip files are equal and if the paths within those zip files are equal.
+ */
@Override
public boolean equals(Object other) {
+ if (this == other)
+ return true;
+
if (!(other instanceof ZipFileIndexFileObject))
return false;
+
ZipFileIndexFileObject o = (ZipFileIndexFileObject) other;
- return entry.equals(o.entry);
+ return zfIndex.getAbsoluteFile().equals(o.zfIndex.getAbsoluteFile())
+ && name.equals(o.name);
}
@Override
public int hashCode() {
- return zipName.hashCode() + (name.hashCode() << 10);
+ return zfIndex.getAbsoluteFile().hashCode() + name.hashCode();
}
private String getPrefixedEntryName() {