You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@ant.apache.org by bo...@apache.org on 2009/02/05 13:30:02 UTC

svn commit: r741089 - in /ant/core/trunk/src: main/org/apache/tools/bzip2/ main/org/apache/tools/tar/ main/org/apache/tools/zip/ tests/junit/org/apache/tools/zip/

Author: bodewig
Date: Thu Feb  5 12:30:01 2009
New Revision: 741089

URL: http://svn.apache.org/viewvc?rev=741089&view=rev
Log:
fix a bunch of findbugs reported problems in the zip, tar and bzip2 classes.  PR 46661

Modified:
    ant/core/trunk/src/main/org/apache/tools/bzip2/CBZip2OutputStream.java
    ant/core/trunk/src/main/org/apache/tools/tar/TarInputStream.java
    ant/core/trunk/src/main/org/apache/tools/tar/TarOutputStream.java
    ant/core/trunk/src/main/org/apache/tools/zip/AsiExtraField.java
    ant/core/trunk/src/main/org/apache/tools/zip/UnrecognizedExtraField.java
    ant/core/trunk/src/main/org/apache/tools/zip/ZipFile.java
    ant/core/trunk/src/main/org/apache/tools/zip/ZipLong.java
    ant/core/trunk/src/main/org/apache/tools/zip/ZipShort.java
    ant/core/trunk/src/tests/junit/org/apache/tools/zip/AsiExtraFieldTest.java
    ant/core/trunk/src/tests/junit/org/apache/tools/zip/ZipLongTest.java
    ant/core/trunk/src/tests/junit/org/apache/tools/zip/ZipShortTest.java

Modified: ant/core/trunk/src/main/org/apache/tools/bzip2/CBZip2OutputStream.java
URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/bzip2/CBZip2OutputStream.java?rev=741089&r1=741088&r2=741089&view=diff
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/bzip2/CBZip2OutputStream.java (original)
+++ ant/core/trunk/src/main/org/apache/tools/bzip2/CBZip2OutputStream.java Thu Feb  5 12:30:01 2009
@@ -613,7 +613,7 @@
                 }
 
                 if (ge > gs && nPart != nGroups && nPart != 1
-                    && ((nGroups - nPart) % 2 == 1)) {
+                    && ((nGroups - nPart) % 2 != 0)) {
                     aFreq -= mtfFreq[ge];
                     ge--;
                 }
@@ -983,9 +983,7 @@
             b = t;
         }
         if (b > c) {
-            t = b;
             b = c;
-            c = t;
         }
         if (a > b) {
             b = a;
@@ -1030,7 +1028,7 @@
 
             med = med3(block[zptr[lo] + d + 1],
                        block[zptr[hi            ] + d  + 1],
-                       block[zptr[(lo + hi) >> 1] + d + 1]);
+                       block[zptr[(lo + hi) >>> 1] + d + 1]);
 
             unLo = ltLo = lo;
             unHi = gtHi = hi;

Modified: ant/core/trunk/src/main/org/apache/tools/tar/TarInputStream.java
URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/tar/TarInputStream.java?rev=741089&r1=741088&r2=741089&view=diff
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/tar/TarInputStream.java (original)
+++ ant/core/trunk/src/main/org/apache/tools/tar/TarInputStream.java Thu Feb  5 12:30:01 2009
@@ -218,8 +218,13 @@
                         + numToSkip + " bytes");
             }
 
-            if (numToSkip > 0) {
-                skip(numToSkip);
+            while (numToSkip > 0) {
+                long skipped = skip(numToSkip);
+                if (skipped <= 0) {
+                    throw new RuntimeException("failed to skip current tar"
+                                               + " entry");
+                }
+                numToSkip -= skipped;
             }
 
             readBuf = null;

Modified: ant/core/trunk/src/main/org/apache/tools/tar/TarOutputStream.java
URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/tar/TarOutputStream.java?rev=741089&r1=741088&r2=741089&view=diff
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/tar/TarOutputStream.java (original)
+++ ant/core/trunk/src/main/org/apache/tools/tar/TarOutputStream.java Thu Feb  5 12:30:01 2009
@@ -310,7 +310,7 @@
 
                 wOffset += numToWrite;
                 assemLen += numToWrite;
-                numToWrite -= numToWrite;
+                numToWrite = 0;
             }
         }
 

Modified: ant/core/trunk/src/main/org/apache/tools/zip/AsiExtraField.java
URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/zip/AsiExtraField.java?rev=741089&r1=741088&r2=741089&view=diff
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/zip/AsiExtraField.java (original)
+++ ant/core/trunk/src/main/org/apache/tools/zip/AsiExtraField.java Thu Feb  5 12:30:01 2009
@@ -334,4 +334,14 @@
         return type | (mode & PERM_MASK);
     }
 
+    public Object clone() {
+        try {
+            AsiExtraField cloned = (AsiExtraField) super.clone();
+            cloned.crc = new CRC32();
+            return cloned;
+        } catch (CloneNotSupportedException cnfe) {
+            // impossible
+            throw new RuntimeException(cnfe);
+        }
+    }
 }

Modified: ant/core/trunk/src/main/org/apache/tools/zip/UnrecognizedExtraField.java
URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/zip/UnrecognizedExtraField.java?rev=741089&r1=741088&r2=741089&view=diff
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/zip/UnrecognizedExtraField.java (original)
+++ ant/core/trunk/src/main/org/apache/tools/zip/UnrecognizedExtraField.java Thu Feb  5 12:30:01 2009
@@ -65,7 +65,7 @@
      * @param data the field data to use
      */
     public void setLocalFileDataData(byte[] data) {
-        localData = data;
+        localData = copy(data);
     }
 
     /**
@@ -81,7 +81,7 @@
      * @return the local data
      */
     public byte[] getLocalFileDataData() {
-        return localData;
+        return copy(localData);
     }
 
     /**
@@ -97,7 +97,7 @@
      * @param data the data to use
      */
     public void setCentralDirectoryData(byte[] data) {
-        centralData = data;
+        centralData = copy(data);
     }
 
     /**
@@ -118,7 +118,7 @@
      */
     public byte[] getCentralDirectoryData() {
         if (centralData != null) {
-            return centralData;
+            return copy(centralData);
         }
         return getLocalFileDataData();
     }
@@ -134,4 +134,13 @@
         System.arraycopy(data, offset, tmp, 0, length);
         setLocalFileDataData(tmp);
     }
+
+    private static byte[] copy(byte[] from) {
+        if (from != null) {
+            byte[] to = new byte[from.length];
+            System.arraycopy(from, 0, to, 0, to.length);
+            return to;
+        }
+        return null;
+    }
 }

Modified: ant/core/trunk/src/main/org/apache/tools/zip/ZipFile.java
URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/zip/ZipFile.java?rev=741089&r1=741088&r2=741089&view=diff
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/zip/ZipFile.java (original)
+++ ant/core/trunk/src/main/org/apache/tools/zip/ZipFile.java Thu Feb  5 12:30:01 2009
@@ -345,7 +345,15 @@
 
             nameMap.put(ze.getName(), ze);
 
-            archive.skipBytes(extraLen);
+            int lenToSkip = extraLen;
+            while (lenToSkip > 0) {
+                int skipped = archive.skipBytes(lenToSkip);
+                if (skipped <= 0) {
+                    throw new RuntimeException("failed to skip extra data in"
+                                               + " central directory");
+                }
+                lenToSkip -= skipped;
+            }            
 
             byte[] comment = new byte[commentLen];
             archive.readFully(comment);
@@ -461,7 +469,15 @@
             int fileNameLen = ZipShort.getValue(b);
             archive.readFully(b);
             int extraFieldLen = ZipShort.getValue(b);
-            archive.skipBytes(fileNameLen);
+            int lenToSkip = fileNameLen;
+            while (lenToSkip > 0) {
+                int skipped = archive.skipBytes(lenToSkip);
+                if (skipped <= 0) {
+                    throw new RuntimeException("failed to skip file name in"
+                                               + " local file header");
+                }
+                lenToSkip -= skipped;
+            }            
             byte[] localExtraData = new byte[extraFieldLen];
             archive.readFully(localExtraData);
             ze.setExtra(localExtraData);

Modified: ant/core/trunk/src/main/org/apache/tools/zip/ZipLong.java
URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/zip/ZipLong.java?rev=741089&r1=741088&r2=741089&view=diff
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/zip/ZipLong.java (original)
+++ ant/core/trunk/src/main/org/apache/tools/zip/ZipLong.java Thu Feb  5 12:30:01 2009
@@ -147,4 +147,13 @@
     public int hashCode() {
         return (int) value;
     }
+
+    public Object clone() {
+        try {
+            return (ZipLong) super.clone();
+        } catch (CloneNotSupportedException cnfe) {
+            // impossible
+            throw new RuntimeException(cnfe);
+        }
+    }
 }

Modified: ant/core/trunk/src/main/org/apache/tools/zip/ZipShort.java
URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/zip/ZipShort.java?rev=741089&r1=741088&r2=741089&view=diff
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/zip/ZipShort.java (original)
+++ ant/core/trunk/src/main/org/apache/tools/zip/ZipShort.java Thu Feb  5 12:30:01 2009
@@ -133,4 +133,13 @@
     public int hashCode() {
         return value;
     }
+
+    public Object clone() {
+        try {
+            return (ZipShort) super.clone();
+        } catch (CloneNotSupportedException cnfe) {
+            // impossible
+            throw new RuntimeException(cnfe);
+        }
+    }
 }

Modified: ant/core/trunk/src/tests/junit/org/apache/tools/zip/AsiExtraFieldTest.java
URL: http://svn.apache.org/viewvc/ant/core/trunk/src/tests/junit/org/apache/tools/zip/AsiExtraFieldTest.java?rev=741089&r1=741088&r2=741089&view=diff
==============================================================================
--- ant/core/trunk/src/tests/junit/org/apache/tools/zip/AsiExtraFieldTest.java (original)
+++ ant/core/trunk/src/tests/junit/org/apache/tools/zip/AsiExtraFieldTest.java Thu Feb  5 12:30:01 2009
@@ -138,4 +138,20 @@
                          e.getMessage());
         }
     }
+
+    public void testClone() {
+        AsiExtraField s1 = new AsiExtraField();
+        s1.setUserId(42);
+        s1.setGroupId(12);
+        s1.setLinkedFile("foo");
+        s1.setMode(0644);
+        s1.setDirectory(true);
+        AsiExtraField s2 = (AsiExtraField) s1.clone();
+        assertNotSame(s1, s2);
+        assertEquals(s1.getUserId(), s2.getUserId());
+        assertEquals(s1.getGroupId(), s2.getGroupId());
+        assertEquals(s1.getLinkedFile(), s2.getLinkedFile());
+        assertEquals(s1.getMode(), s2.getMode());
+        assertEquals(s1.isDirectory(), s2.isDirectory());
+    }
 }

Modified: ant/core/trunk/src/tests/junit/org/apache/tools/zip/ZipLongTest.java
URL: http://svn.apache.org/viewvc/ant/core/trunk/src/tests/junit/org/apache/tools/zip/ZipLongTest.java?rev=741089&r1=741088&r2=741089&view=diff
==============================================================================
--- ant/core/trunk/src/tests/junit/org/apache/tools/zip/ZipLongTest.java (original)
+++ ant/core/trunk/src/tests/junit/org/apache/tools/zip/ZipLongTest.java Thu Feb  5 12:30:01 2009
@@ -79,4 +79,11 @@
         assertEquals(0x00000000FFFFFFFFl, zl.getValue());
     }
 
+    public void testClone() {
+        ZipLong s1 = new ZipLong(42);
+        ZipLong s2 = (ZipLong) s1.clone();
+        assertNotSame(s1, s2);
+        assertEquals(s1, s2);
+        assertEquals(s1.getValue(), s2.getValue());
+    }
 }

Modified: ant/core/trunk/src/tests/junit/org/apache/tools/zip/ZipShortTest.java
URL: http://svn.apache.org/viewvc/ant/core/trunk/src/tests/junit/org/apache/tools/zip/ZipShortTest.java?rev=741089&r1=741088&r2=741089&view=diff
==============================================================================
--- ant/core/trunk/src/tests/junit/org/apache/tools/zip/ZipShortTest.java (original)
+++ ant/core/trunk/src/tests/junit/org/apache/tools/zip/ZipShortTest.java Thu Feb  5 12:30:01 2009
@@ -77,4 +77,11 @@
         assertEquals(0x0000FFFF, zs.getValue());
     }
 
+    public void testClone() {
+        ZipShort s1 = new ZipShort(42);
+        ZipShort s2 = (ZipShort) s1.clone();
+        assertNotSame(s1, s2);
+        assertEquals(s1, s2);
+        assertEquals(s1.getValue(), s2.getValue());
+    }
 }



Re: svn commit: r741089 - in /ant/core/trunk/src: main/org/apache/tools/bzip2/ main/org/apache/tools/tar/ main/org/apache/tools/zip/ tests/junit/org/apache/tools/zip/

Posted by Stefan Bodewig <bo...@apache.org>.
On 2009-02-05, Peter Reilly <pe...@gmail.com> wrote:

> some of the findbugs issues are a little too severe.

any other than the array copy thing?

> Do we really need to copy the arrays??

Probably not really since nobody is using that class anyway, it is
more of an issue in commons-compress that I currently try to keep in
sync with Ant's trunk.

IMHO it is not necessary but doesn't hurt us either.

Stefan

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org


Re: svn commit: r741089 - in /ant/core/trunk/src: main/org/apache/tools/bzip2/ main/org/apache/tools/tar/ main/org/apache/tools/zip/ tests/junit/org/apache/tools/zip/

Posted by Peter Reilly <pe...@gmail.com>.
some of the findbugs issues are a little too severe.

Do we really need to copy the arrays??

Peter


On Thu, Feb 5, 2009 at 12:30 PM,  <bo...@apache.org> wrote:
> Author: bodewig
> Date: Thu Feb  5 12:30:01 2009
> New Revision: 741089
>
> URL: http://svn.apache.org/viewvc?rev=741089&view=rev
> Log:
> fix a bunch of findbugs reported problems in the zip, tar and bzip2 classes.  PR 46661
>
> Modified:
>    ant/core/trunk/src/main/org/apache/tools/bzip2/CBZip2OutputStream.java
>    ant/core/trunk/src/main/org/apache/tools/tar/TarInputStream.java
>    ant/core/trunk/src/main/org/apache/tools/tar/TarOutputStream.java
>    ant/core/trunk/src/main/org/apache/tools/zip/AsiExtraField.java
>    ant/core/trunk/src/main/org/apache/tools/zip/UnrecognizedExtraField.java
>    ant/core/trunk/src/main/org/apache/tools/zip/ZipFile.java
>    ant/core/trunk/src/main/org/apache/tools/zip/ZipLong.java
>    ant/core/trunk/src/main/org/apache/tools/zip/ZipShort.java
>    ant/core/trunk/src/tests/junit/org/apache/tools/zip/AsiExtraFieldTest.java
>    ant/core/trunk/src/tests/junit/org/apache/tools/zip/ZipLongTest.java
>    ant/core/trunk/src/tests/junit/org/apache/tools/zip/ZipShortTest.java
>
> Modified: ant/core/trunk/src/main/org/apache/tools/bzip2/CBZip2OutputStream.java
> URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/bzip2/CBZip2OutputStream.java?rev=741089&r1=741088&r2=741089&view=diff
> ==============================================================================
> --- ant/core/trunk/src/main/org/apache/tools/bzip2/CBZip2OutputStream.java (original)
> +++ ant/core/trunk/src/main/org/apache/tools/bzip2/CBZip2OutputStream.java Thu Feb  5 12:30:01 2009
> @@ -613,7 +613,7 @@
>                 }
>
>                 if (ge > gs && nPart != nGroups && nPart != 1
> -                    && ((nGroups - nPart) % 2 == 1)) {
> +                    && ((nGroups - nPart) % 2 != 0)) {
>                     aFreq -= mtfFreq[ge];
>                     ge--;
>                 }
> @@ -983,9 +983,7 @@
>             b = t;
>         }
>         if (b > c) {
> -            t = b;
>             b = c;
> -            c = t;
>         }
>         if (a > b) {
>             b = a;
> @@ -1030,7 +1028,7 @@
>
>             med = med3(block[zptr[lo] + d + 1],
>                        block[zptr[hi            ] + d  + 1],
> -                       block[zptr[(lo + hi) >> 1] + d + 1]);
> +                       block[zptr[(lo + hi) >>> 1] + d + 1]);
>
>             unLo = ltLo = lo;
>             unHi = gtHi = hi;
>
> Modified: ant/core/trunk/src/main/org/apache/tools/tar/TarInputStream.java
> URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/tar/TarInputStream.java?rev=741089&r1=741088&r2=741089&view=diff
> ==============================================================================
> --- ant/core/trunk/src/main/org/apache/tools/tar/TarInputStream.java (original)
> +++ ant/core/trunk/src/main/org/apache/tools/tar/TarInputStream.java Thu Feb  5 12:30:01 2009
> @@ -218,8 +218,13 @@
>                         + numToSkip + " bytes");
>             }
>
> -            if (numToSkip > 0) {
> -                skip(numToSkip);
> +            while (numToSkip > 0) {
> +                long skipped = skip(numToSkip);
> +                if (skipped <= 0) {
> +                    throw new RuntimeException("failed to skip current tar"
> +                                               + " entry");
> +                }
> +                numToSkip -= skipped;
>             }
>
>             readBuf = null;
>
> Modified: ant/core/trunk/src/main/org/apache/tools/tar/TarOutputStream.java
> URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/tar/TarOutputStream.java?rev=741089&r1=741088&r2=741089&view=diff
> ==============================================================================
> --- ant/core/trunk/src/main/org/apache/tools/tar/TarOutputStream.java (original)
> +++ ant/core/trunk/src/main/org/apache/tools/tar/TarOutputStream.java Thu Feb  5 12:30:01 2009
> @@ -310,7 +310,7 @@
>
>                 wOffset += numToWrite;
>                 assemLen += numToWrite;
> -                numToWrite -= numToWrite;
> +                numToWrite = 0;
>             }
>         }
>
>
> Modified: ant/core/trunk/src/main/org/apache/tools/zip/AsiExtraField.java
> URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/zip/AsiExtraField.java?rev=741089&r1=741088&r2=741089&view=diff
> ==============================================================================
> --- ant/core/trunk/src/main/org/apache/tools/zip/AsiExtraField.java (original)
> +++ ant/core/trunk/src/main/org/apache/tools/zip/AsiExtraField.java Thu Feb  5 12:30:01 2009
> @@ -334,4 +334,14 @@
>         return type | (mode & PERM_MASK);
>     }
>
> +    public Object clone() {
> +        try {
> +            AsiExtraField cloned = (AsiExtraField) super.clone();
> +            cloned.crc = new CRC32();
> +            return cloned;
> +        } catch (CloneNotSupportedException cnfe) {
> +            // impossible
> +            throw new RuntimeException(cnfe);
> +        }
> +    }
>  }
>
> Modified: ant/core/trunk/src/main/org/apache/tools/zip/UnrecognizedExtraField.java
> URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/zip/UnrecognizedExtraField.java?rev=741089&r1=741088&r2=741089&view=diff
> ==============================================================================
> --- ant/core/trunk/src/main/org/apache/tools/zip/UnrecognizedExtraField.java (original)
> +++ ant/core/trunk/src/main/org/apache/tools/zip/UnrecognizedExtraField.java Thu Feb  5 12:30:01 2009
> @@ -65,7 +65,7 @@
>      * @param data the field data to use
>      */
>     public void setLocalFileDataData(byte[] data) {
> -        localData = data;
> +        localData = copy(data);
>     }
>
>     /**
> @@ -81,7 +81,7 @@
>      * @return the local data
>      */
>     public byte[] getLocalFileDataData() {
> -        return localData;
> +        return copy(localData);
>     }
>
>     /**
> @@ -97,7 +97,7 @@
>      * @param data the data to use
>      */
>     public void setCentralDirectoryData(byte[] data) {
> -        centralData = data;
> +        centralData = copy(data);
>     }
>
>     /**
> @@ -118,7 +118,7 @@
>      */
>     public byte[] getCentralDirectoryData() {
>         if (centralData != null) {
> -            return centralData;
> +            return copy(centralData);
>         }
>         return getLocalFileDataData();
>     }
> @@ -134,4 +134,13 @@
>         System.arraycopy(data, offset, tmp, 0, length);
>         setLocalFileDataData(tmp);
>     }
> +
> +    private static byte[] copy(byte[] from) {
> +        if (from != null) {
> +            byte[] to = new byte[from.length];
> +            System.arraycopy(from, 0, to, 0, to.length);
> +            return to;
> +        }
> +        return null;
> +    }
>  }
>
> Modified: ant/core/trunk/src/main/org/apache/tools/zip/ZipFile.java
> URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/zip/ZipFile.java?rev=741089&r1=741088&r2=741089&view=diff
> ==============================================================================
> --- ant/core/trunk/src/main/org/apache/tools/zip/ZipFile.java (original)
> +++ ant/core/trunk/src/main/org/apache/tools/zip/ZipFile.java Thu Feb  5 12:30:01 2009
> @@ -345,7 +345,15 @@
>
>             nameMap.put(ze.getName(), ze);
>
> -            archive.skipBytes(extraLen);
> +            int lenToSkip = extraLen;
> +            while (lenToSkip > 0) {
> +                int skipped = archive.skipBytes(lenToSkip);
> +                if (skipped <= 0) {
> +                    throw new RuntimeException("failed to skip extra data in"
> +                                               + " central directory");
> +                }
> +                lenToSkip -= skipped;
> +            }
>
>             byte[] comment = new byte[commentLen];
>             archive.readFully(comment);
> @@ -461,7 +469,15 @@
>             int fileNameLen = ZipShort.getValue(b);
>             archive.readFully(b);
>             int extraFieldLen = ZipShort.getValue(b);
> -            archive.skipBytes(fileNameLen);
> +            int lenToSkip = fileNameLen;
> +            while (lenToSkip > 0) {
> +                int skipped = archive.skipBytes(lenToSkip);
> +                if (skipped <= 0) {
> +                    throw new RuntimeException("failed to skip file name in"
> +                                               + " local file header");
> +                }
> +                lenToSkip -= skipped;
> +            }
>             byte[] localExtraData = new byte[extraFieldLen];
>             archive.readFully(localExtraData);
>             ze.setExtra(localExtraData);
>
> Modified: ant/core/trunk/src/main/org/apache/tools/zip/ZipLong.java
> URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/zip/ZipLong.java?rev=741089&r1=741088&r2=741089&view=diff
> ==============================================================================
> --- ant/core/trunk/src/main/org/apache/tools/zip/ZipLong.java (original)
> +++ ant/core/trunk/src/main/org/apache/tools/zip/ZipLong.java Thu Feb  5 12:30:01 2009
> @@ -147,4 +147,13 @@
>     public int hashCode() {
>         return (int) value;
>     }
> +
> +    public Object clone() {
> +        try {
> +            return (ZipLong) super.clone();
> +        } catch (CloneNotSupportedException cnfe) {
> +            // impossible
> +            throw new RuntimeException(cnfe);
> +        }
> +    }
>  }
>
> Modified: ant/core/trunk/src/main/org/apache/tools/zip/ZipShort.java
> URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/zip/ZipShort.java?rev=741089&r1=741088&r2=741089&view=diff
> ==============================================================================
> --- ant/core/trunk/src/main/org/apache/tools/zip/ZipShort.java (original)
> +++ ant/core/trunk/src/main/org/apache/tools/zip/ZipShort.java Thu Feb  5 12:30:01 2009
> @@ -133,4 +133,13 @@
>     public int hashCode() {
>         return value;
>     }
> +
> +    public Object clone() {
> +        try {
> +            return (ZipShort) super.clone();
> +        } catch (CloneNotSupportedException cnfe) {
> +            // impossible
> +            throw new RuntimeException(cnfe);
> +        }
> +    }
>  }
>
> Modified: ant/core/trunk/src/tests/junit/org/apache/tools/zip/AsiExtraFieldTest.java
> URL: http://svn.apache.org/viewvc/ant/core/trunk/src/tests/junit/org/apache/tools/zip/AsiExtraFieldTest.java?rev=741089&r1=741088&r2=741089&view=diff
> ==============================================================================
> --- ant/core/trunk/src/tests/junit/org/apache/tools/zip/AsiExtraFieldTest.java (original)
> +++ ant/core/trunk/src/tests/junit/org/apache/tools/zip/AsiExtraFieldTest.java Thu Feb  5 12:30:01 2009
> @@ -138,4 +138,20 @@
>                          e.getMessage());
>         }
>     }
> +
> +    public void testClone() {
> +        AsiExtraField s1 = new AsiExtraField();
> +        s1.setUserId(42);
> +        s1.setGroupId(12);
> +        s1.setLinkedFile("foo");
> +        s1.setMode(0644);
> +        s1.setDirectory(true);
> +        AsiExtraField s2 = (AsiExtraField) s1.clone();
> +        assertNotSame(s1, s2);
> +        assertEquals(s1.getUserId(), s2.getUserId());
> +        assertEquals(s1.getGroupId(), s2.getGroupId());
> +        assertEquals(s1.getLinkedFile(), s2.getLinkedFile());
> +        assertEquals(s1.getMode(), s2.getMode());
> +        assertEquals(s1.isDirectory(), s2.isDirectory());
> +    }
>  }
>
> Modified: ant/core/trunk/src/tests/junit/org/apache/tools/zip/ZipLongTest.java
> URL: http://svn.apache.org/viewvc/ant/core/trunk/src/tests/junit/org/apache/tools/zip/ZipLongTest.java?rev=741089&r1=741088&r2=741089&view=diff
> ==============================================================================
> --- ant/core/trunk/src/tests/junit/org/apache/tools/zip/ZipLongTest.java (original)
> +++ ant/core/trunk/src/tests/junit/org/apache/tools/zip/ZipLongTest.java Thu Feb  5 12:30:01 2009
> @@ -79,4 +79,11 @@
>         assertEquals(0x00000000FFFFFFFFl, zl.getValue());
>     }
>
> +    public void testClone() {
> +        ZipLong s1 = new ZipLong(42);
> +        ZipLong s2 = (ZipLong) s1.clone();
> +        assertNotSame(s1, s2);
> +        assertEquals(s1, s2);
> +        assertEquals(s1.getValue(), s2.getValue());
> +    }
>  }
>
> Modified: ant/core/trunk/src/tests/junit/org/apache/tools/zip/ZipShortTest.java
> URL: http://svn.apache.org/viewvc/ant/core/trunk/src/tests/junit/org/apache/tools/zip/ZipShortTest.java?rev=741089&r1=741088&r2=741089&view=diff
> ==============================================================================
> --- ant/core/trunk/src/tests/junit/org/apache/tools/zip/ZipShortTest.java (original)
> +++ ant/core/trunk/src/tests/junit/org/apache/tools/zip/ZipShortTest.java Thu Feb  5 12:30:01 2009
> @@ -77,4 +77,11 @@
>         assertEquals(0x0000FFFF, zs.getValue());
>     }
>
> +    public void testClone() {
> +        ZipShort s1 = new ZipShort(42);
> +        ZipShort s2 = (ZipShort) s1.clone();
> +        assertNotSame(s1, s2);
> +        assertEquals(s1, s2);
> +        assertEquals(s1.getValue(), s2.getValue());
> +    }
>  }
>
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org