Author: bodewig Date: Thu Jan 7 09:34:55 2010 New Revision: 896818 URL: http://svn.apache.org/viewvc?rev=896818&view=rev Log: ZipArchiveEntry#equals is broken if the String-arg constructor is used. COMPRESS-94 - submitted by Anon Devs
Modified: commons/proper/compress/trunk/src/changes/changes.xml commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/ZipArchiveEntry.java commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/archivers/zip/ZipArchiveEntryTest.java Modified: commons/proper/compress/trunk/src/changes/changes.xml URL: http://svn.apache.org/viewvc/commons/proper/compress/trunk/src/changes/changes.xml?rev=896818&r1=896817&r2=896818&view=diff ============================================================================== --- commons/proper/compress/trunk/src/changes/changes.xml (original) +++ commons/proper/compress/trunk/src/changes/changes.xml Thu Jan 7 09:34:55 2010 @@ -23,6 +23,12 @@ </properties> <body> <release version="1.1" date="as in SVN" description="Release 1.1"> + <action type="fix" issue="COMPRESS-94" date="2010-01-07" + due-to="Anon Devs"> + ZipArchiveEntry's equals method was broken for entries created + with the String-arg constructor. This lead to broken ZIP + archives if two different entries had the same hash code. + </action> <action type="fix" issue="COMPRESS-87" date="2009-10-30" due-to="Antoni Mylka"> ZipArchiveInputStream could repeatedly return 0 on read() when Modified: commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/ZipArchiveEntry.java URL: http://svn.apache.org/viewvc/commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/ZipArchiveEntry.java?rev=896818&r1=896817&r2=896818&view=diff ============================================================================== --- commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/ZipArchiveEntry.java (original) +++ commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/ZipArchiveEntry.java Thu Jan 7 09:34:55 2010 @@ -61,6 +61,7 @@ */ public ZipArchiveEntry(String name) { super(name); + setName(name); } /** @@ -96,7 +97,7 @@ /** */ protected ZipArchiveEntry() { - super(""); + this(""); } public ZipArchiveEntry(File inputFile, String entryName) { @@ -459,11 +460,13 @@ return false; } ZipArchiveEntry other = (ZipArchiveEntry) obj; - if (name == null) { - if (other.name != null) { + String myName = getName(); + String otherName = other.getName(); + if (myName == null) { + if (otherName != null) { return false; } - } else if (!name.equals(other.name)) { + } else if (!myName.equals(otherName)) { return false; } return true; Modified: commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/archivers/zip/ZipArchiveEntryTest.java URL: http://svn.apache.org/viewvc/commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/archivers/zip/ZipArchiveEntryTest.java?rev=896818&r1=896817&r2=896818&view=diff ============================================================================== --- commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/archivers/zip/ZipArchiveEntryTest.java (original) +++ commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/archivers/zip/ZipArchiveEntryTest.java Thu Jan 7 09:34:55 2010 @@ -219,4 +219,14 @@ assertFalse(entry.isSupportedCompressionMethod()); } + /** + * Test case for + * <a href="https://issues.apache.org/jira/browse/COMPRESS-94" + * >COMPRESS-94</a>. + */ + public void testNotEquals() { + ZipArchiveEntry entry1 = new ZipArchiveEntry("foo"); + ZipArchiveEntry entry2 = new ZipArchiveEntry("bar"); + assertFalse(entry1.equals(entry2)); + } }