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 2015/01/02 16:06:02 UTC
ant git commit: ZipEntry's copy constructor was incomplete
Repository: ant
Updated Branches:
refs/heads/master f7f5327d2 -> fa15b7c21
ZipEntry's copy constructor was incomplete
Project: http://git-wip-us.apache.org/repos/asf/ant/repo
Commit: http://git-wip-us.apache.org/repos/asf/ant/commit/fa15b7c2
Tree: http://git-wip-us.apache.org/repos/asf/ant/tree/fa15b7c2
Diff: http://git-wip-us.apache.org/repos/asf/ant/diff/fa15b7c2
Branch: refs/heads/master
Commit: fa15b7c2100d937dc5f99feb9d29a240e9870896
Parents: f7f5327
Author: Stefan Bodewig <bo...@apache.org>
Authored: Fri Jan 2 16:05:31 2015 +0100
Committer: Stefan Bodewig <bo...@apache.org>
Committed: Fri Jan 2 16:05:31 2015 +0100
----------------------------------------------------------------------
src/main/org/apache/tools/zip/GeneralPurposeBit.java | 12 +++++++++++-
src/main/org/apache/tools/zip/ZipEntry.java | 3 +++
src/tests/junit/org/apache/tools/zip/ZipEntryTest.java | 10 ++++++++++
3 files changed, 24 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ant/blob/fa15b7c2/src/main/org/apache/tools/zip/GeneralPurposeBit.java
----------------------------------------------------------------------
diff --git a/src/main/org/apache/tools/zip/GeneralPurposeBit.java b/src/main/org/apache/tools/zip/GeneralPurposeBit.java
index eaafc2c..ab2525d 100644
--- a/src/main/org/apache/tools/zip/GeneralPurposeBit.java
+++ b/src/main/org/apache/tools/zip/GeneralPurposeBit.java
@@ -23,7 +23,7 @@ package org.apache.tools.zip;
*
* @since Ant 1.9.0
*/
-public final class GeneralPurposeBit {
+public final class GeneralPurposeBit implements Cloneable {
/**
* Indicates that the file is encrypted.
*/
@@ -168,4 +168,14 @@ public final class GeneralPurposeBit {
&& g.languageEncodingFlag == languageEncodingFlag
&& g.dataDescriptorFlag == dataDescriptorFlag;
}
+
+ @Override
+ public Object clone() {
+ try {
+ return super.clone();
+ } catch (CloneNotSupportedException ex) {
+ // impossible
+ throw new RuntimeException("GeneralPurposeBit is not Cloneable?", ex);
+ }
+ }
}
http://git-wip-us.apache.org/repos/asf/ant/blob/fa15b7c2/src/main/org/apache/tools/zip/ZipEntry.java
----------------------------------------------------------------------
diff --git a/src/main/org/apache/tools/zip/ZipEntry.java b/src/main/org/apache/tools/zip/ZipEntry.java
index 375a7ac..8031481 100644
--- a/src/main/org/apache/tools/zip/ZipEntry.java
+++ b/src/main/org/apache/tools/zip/ZipEntry.java
@@ -136,6 +136,9 @@ public class ZipEntry extends java.util.zip.ZipEntry implements Cloneable {
setInternalAttributes(entry.getInternalAttributes());
setExternalAttributes(entry.getExternalAttributes());
setExtraFields(entry.getExtraFields(true));
+ setPlatform(entry.platform);
+ setGeneralPurposeBit(entry.gpb == null ? null :
+ (GeneralPurposeBit) entry.gpb.clone());
}
/**
http://git-wip-us.apache.org/repos/asf/ant/blob/fa15b7c2/src/tests/junit/org/apache/tools/zip/ZipEntryTest.java
----------------------------------------------------------------------
diff --git a/src/tests/junit/org/apache/tools/zip/ZipEntryTest.java b/src/tests/junit/org/apache/tools/zip/ZipEntryTest.java
index b0a3294..3c21f6f 100644
--- a/src/tests/junit/org/apache/tools/zip/ZipEntryTest.java
+++ b/src/tests/junit/org/apache/tools/zip/ZipEntryTest.java
@@ -215,4 +215,14 @@ public class ZipEntryTest {
ZipEntry entry2 = new ZipEntry("bar");
assertFalse(entry1.equals(entry2));
}
+
+ @Test
+ public void testCopyConstructor() throws Exception {
+ ZipEntry archiveEntry = new ZipEntry("fred");
+ archiveEntry.setUnixMode(0664);
+ archiveEntry.setMethod(ZipEntry.DEFLATED);
+ archiveEntry.getGeneralPurposeBit().useStrongEncryption(true);
+ ZipEntry copy = new ZipEntry(archiveEntry);
+ assertEquals(archiveEntry, copy);
+ }
}