Author: bodewig
Date: Thu Feb 19 17:23:05 2009
New Revision: 745933

URL: http://svn.apache.org/viewvc?rev=745933&view=rev
Log:
NIO doesn't recognize all encoding names that String.getBytes does, strange.  
At least it fails for 'UnicodeBig' on my Java 1.4 installation

Modified:
    
commons/sandbox/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/ZipArchiveOutputStream.java

Modified: 
commons/sandbox/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/ZipArchiveOutputStream.java
URL: 
http://svn.apache.org/viewvc/commons/sandbox/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/ZipArchiveOutputStream.java?rev=745933&r1=745932&r2=745933&view=diff
==============================================================================
--- 
commons/sandbox/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/ZipArchiveOutputStream.java
 (original)
+++ 
commons/sandbox/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/ZipArchiveOutputStream.java
 Thu Feb 19 17:23:05 2009
@@ -904,14 +904,25 @@
      * this Stream.
      * @param name the string to get bytes from
      * @return the bytes as a byte array
+     * @throws ZipException on error
      *
      * @since 1.3
      */
-    protected byte[] getBytes(String name) {
+    protected byte[] getBytes(String name) throws ZipException {
         if (encoding == null) {
             return name.getBytes();
         } else {
-            return ZipEncodingHelper.encodeName(name, encoding);
+            try {
+                return ZipEncodingHelper.encodeName(name, encoding);
+            } catch (java.nio.charset.UnsupportedCharsetException ex) {
+                // Java 1.4's NIO doesn't recognize a few names that
+                // String.getBytes does
+                try {
+                    return name.getBytes(encoding);
+                } catch (UnsupportedEncodingException uee) {
+                    throw new ZipException(uee.getMessage());
+                }
+            }
         }
     }
 


Reply via email to