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()); + } + } } }