1.1 --- a/src/share/classes/com/sun/tools/javac/file/ZipFileIndexArchive.java Tue Oct 13 15:26:30 2009 -0700 1.2 +++ b/src/share/classes/com/sun/tools/javac/file/ZipFileIndexArchive.java Wed Oct 14 15:41:28 2009 -0700 1.3 @@ -219,17 +219,27 @@ 1.4 return name.equals(cn + k.extension); 1.5 } 1.6 1.7 + /** 1.8 + * Check if two file objects are equal. 1.9 + * Two ZipFileIndexFileObjects are equal if the absolute paths of the underlying 1.10 + * zip files are equal and if the paths within those zip files are equal. 1.11 + */ 1.12 @Override 1.13 public boolean equals(Object other) { 1.14 + if (this == other) 1.15 + return true; 1.16 + 1.17 if (!(other instanceof ZipFileIndexFileObject)) 1.18 return false; 1.19 + 1.20 ZipFileIndexFileObject o = (ZipFileIndexFileObject) other; 1.21 - return entry.equals(o.entry); 1.22 + return zfIndex.getAbsoluteFile().equals(o.zfIndex.getAbsoluteFile()) 1.23 + && name.equals(o.name); 1.24 } 1.25 1.26 @Override 1.27 public int hashCode() { 1.28 - return zipName.hashCode() + (name.hashCode() << 10); 1.29 + return zfIndex.getAbsoluteFile().hashCode() + name.hashCode(); 1.30 } 1.31 1.32 private String getPrefixedEntryName() {