Author: bodewig Date: Thu Feb 26 09:31:43 2009 New Revision: 748067 URL: http://svn.apache.org/viewvc?rev=748067&view=rev Log: correct signature detection of ZIP archives.
Modified: commons/sandbox/compress/trunk/src/main/java/org/apache/commons/compress/archivers/jar/JarArchiveInputStream.java commons/sandbox/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/ZipArchiveInputStream.java commons/sandbox/compress/trunk/src/test/java/org/apache/commons/compress/DetectArchiverTestCase.java Modified: commons/sandbox/compress/trunk/src/main/java/org/apache/commons/compress/archivers/jar/JarArchiveInputStream.java URL: http://svn.apache.org/viewvc/commons/sandbox/compress/trunk/src/main/java/org/apache/commons/compress/archivers/jar/JarArchiveInputStream.java?rev=748067&r1=748066&r2=748067&view=diff ============================================================================== --- commons/sandbox/compress/trunk/src/main/java/org/apache/commons/compress/archivers/jar/JarArchiveInputStream.java (original) +++ commons/sandbox/compress/trunk/src/main/java/org/apache/commons/compress/archivers/jar/JarArchiveInputStream.java Thu Feb 26 09:31:43 2009 @@ -41,37 +41,6 @@ } public static boolean matches(byte[] signature, int length ) { - // 4b50 0403 0014 0008 - - if (length < 8) { - return false; - } - - if (signature[0] != 0x50) { - return false; - } - if (signature[1] != 0x4b) { - return false; - } - if (signature[2] != 0x03) { - return false; - } - if (signature[3] != 0x04) { - return false; - } - if (signature[4] != 0x14) { - return false; - } - if (signature[5] != 0x00) { - return false; - } - if (signature[6] != 0x08) { - return false; - } - if (signature[7] != 0x00) { - return false; - } - - return true; + return ZipArchiveInputStream.matches(signature, length); } } Modified: commons/sandbox/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/ZipArchiveInputStream.java URL: http://svn.apache.org/viewvc/commons/sandbox/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/ZipArchiveInputStream.java?rev=748067&r1=748066&r2=748067&view=diff ============================================================================== --- commons/sandbox/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/ZipArchiveInputStream.java (original) +++ commons/sandbox/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/ZipArchiveInputStream.java Thu Feb 26 09:31:43 2009 @@ -54,36 +54,15 @@ } - public static boolean matches( byte[] signature, int length ) { - // 4b50 0403 0014 0000 - - if (length < 8) { + public static boolean matches(byte[] signature, int length) { + if (length < ZipArchiveOutputStream.LFH_SIG.length) { return false; } - if (signature[0] != 0x50) { - return false; - } - if (signature[1] != 0x4b) { - return false; - } - if (signature[2] != 0x03) { - return false; - } - if (signature[3] != 0x04) { - return false; - } - if (signature[4] != 0x14) { - return false; - } - if (signature[5] != 0x00) { - return false; - } - if (signature[6] != 0x00) { - return false; - } - if (signature[7] != 0x00) { - return false; + for (int i = 0; i < ZipArchiveOutputStream.LFH_SIG.length; i++) { + if (signature[i] != ZipArchiveOutputStream.LFH_SIG[i]) { + return false; + } } return true; Modified: commons/sandbox/compress/trunk/src/test/java/org/apache/commons/compress/DetectArchiverTestCase.java URL: http://svn.apache.org/viewvc/commons/sandbox/compress/trunk/src/test/java/org/apache/commons/compress/DetectArchiverTestCase.java?rev=748067&r1=748066&r2=748067&view=diff ============================================================================== --- commons/sandbox/compress/trunk/src/test/java/org/apache/commons/compress/DetectArchiverTestCase.java (original) +++ commons/sandbox/compress/trunk/src/test/java/org/apache/commons/compress/DetectArchiverTestCase.java Thu Feb 26 09:31:43 2009 @@ -58,7 +58,7 @@ new BufferedInputStream(new FileInputStream( new File(getClass().getClassLoader().getResource("bla.jar").getFile())))); assertNotNull(jar); - assertTrue(jar instanceof JarArchiveInputStream); + assertTrue(jar instanceof ZipArchiveInputStream); final ArchiveInputStream cpio = factory.createArchiveInputStream( new BufferedInputStream(new FileInputStream(