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/23 10:08:13 UTC
svn commit: r746934 - in /ant/core/trunk/src/main/org/apache/tools/zip: ./
AbstractUnicodeExtraField.java ExtraFieldUtils.java
UnicodeCommentExtraField.java UnicodePathExtraField.java
ZipEncodingHelper.java ZipFile.java
Author: bodewig
Date: Mon Feb 23 09:08:11 2009
New Revision: 746934
URL: http://svn.apache.org/viewvc?rev=746934&view=rev
Log:
use nio for decoding of names - merge from commons-compress rev 746933
Modified:
ant/core/trunk/src/main/org/apache/tools/zip/ (props changed)
ant/core/trunk/src/main/org/apache/tools/zip/AbstractUnicodeExtraField.java (props changed)
ant/core/trunk/src/main/org/apache/tools/zip/ExtraFieldUtils.java (props changed)
ant/core/trunk/src/main/org/apache/tools/zip/UnicodeCommentExtraField.java (props changed)
ant/core/trunk/src/main/org/apache/tools/zip/UnicodePathExtraField.java (props changed)
ant/core/trunk/src/main/org/apache/tools/zip/ZipEncodingHelper.java (contents, props changed)
ant/core/trunk/src/main/org/apache/tools/zip/ZipFile.java (contents, props changed)
Propchange: ant/core/trunk/src/main/org/apache/tools/zip/
------------------------------------------------------------------------------
--- svn:mergeinfo (added)
+++ svn:mergeinfo Mon Feb 23 09:08:11 2009
@@ -0,0 +1 @@
+/commons/sandbox/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip:746933
Propchange: ant/core/trunk/src/main/org/apache/tools/zip/AbstractUnicodeExtraField.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Feb 23 09:08:11 2009
@@ -1 +1,2 @@
/ant/core/trunk/src/main/org/apache/tools/zip/AbstractUnicodeExtraField.java:738844,739300,741089
+/commons/sandbox/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/AbstractUnicodeExtraField.java:746933
Propchange: ant/core/trunk/src/main/org/apache/tools/zip/ExtraFieldUtils.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Feb 23 09:08:11 2009
@@ -1 +1 @@
-/commons/sandbox/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/ExtraFieldUtils.java:745528
+/commons/sandbox/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/ExtraFieldUtils.java:745528,746933
Propchange: ant/core/trunk/src/main/org/apache/tools/zip/UnicodeCommentExtraField.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Feb 23 09:08:11 2009
@@ -1 +1,2 @@
/ant/core/trunk/src/main/org/apache/tools/zip/UnicodeCommentExtraField.java:738844,739300,741089
+/commons/sandbox/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/UnicodeCommentExtraField.java:746933
Propchange: ant/core/trunk/src/main/org/apache/tools/zip/UnicodePathExtraField.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Feb 23 09:08:11 2009
@@ -1 +1,2 @@
/ant/core/trunk/src/main/org/apache/tools/zip/UnicodePathExtraField.java:738844,739300,741089
+/commons/sandbox/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/UnicodePathExtraField.java:746933
Modified: ant/core/trunk/src/main/org/apache/tools/zip/ZipEncodingHelper.java
URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/zip/ZipEncodingHelper.java?rev=746934&r1=746933&r2=746934&view=diff
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/zip/ZipEncodingHelper.java (original)
+++ ant/core/trunk/src/main/org/apache/tools/zip/ZipEncodingHelper.java Mon Feb 23 09:08:11 2009
@@ -168,4 +168,18 @@
return enc.canEncode(name);
}
+
+ /**
+ * Decode a filename or a comment from a byte array.
+ *
+ * @param name The filename or comment.
+ * @param encoding A valid encoding name. The standard zip
+ * encoding is <code>"CP437"</code>,
+ * <code>"UTF-8"</code> is supported in ZIP file
+ * version <code>6.3</code> or later.
+ */
+ static final String decodeName(byte[] name, String encoding) {
+ Charset cs = Charset.forName(encoding);
+ return cs.decode(ByteBuffer.wrap(name)).toString();
+ }
}
Propchange: ant/core/trunk/src/main/org/apache/tools/zip/ZipEncodingHelper.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Feb 23 09:08:11 2009
@@ -1 +1,2 @@
/ant/core/trunk/src/main/org/apache/tools/zip/ZipEncodingHelper.java:738844,739300,741089
+/commons/sandbox/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/ZipEncodingHelper.java:746933
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=746934&r1=746933&r2=746934&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 Mon Feb 23 09:08:11 2009
@@ -551,9 +551,15 @@
return new String(bytes);
} else {
try {
- return new String(bytes, enc);
- } catch (UnsupportedEncodingException uee) {
- throw new ZipException(uee.getMessage());
+ return ZipEncodingHelper.decodeName(bytes, encoding);
+ } catch (java.nio.charset.UnsupportedCharsetException ex) {
+ // Java 1.4's NIO doesn't recognize a few names that
+ // String.getBytes does
+ try {
+ return new String(bytes, enc);
+ } catch (UnsupportedEncodingException uee) {
+ throw new ZipException(uee.getMessage());
+ }
}
}
}
Propchange: ant/core/trunk/src/main/org/apache/tools/zip/ZipFile.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Feb 23 09:08:11 2009
@@ -1 +1 @@
-/commons/sandbox/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/ZipFile.java:745920
+/commons/sandbox/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/ZipFile.java:745920,746933