[ http://issues.apache.org/jira/browse/HARMONY-1087?page=all ] Vladimir Ivanov updated HARMONY-1087: ------------------------------------- Attachment: CipherInputStreamTest.patch unit test > [classlib][crypto] compatibility: RI throws IllegalStateException while Harmony IOException (according to spec) > --------------------------------------------------------------------------------------------------------------- > > Key: HARMONY-1087 > URL: http://issues.apache.org/jira/browse/HARMONY-1087 > Project: Harmony > Issue Type: Bug > Components: Classlib > Reporter: Vladimir Ivanov > Assigned To: Mikhail Loenko > Priority: Minor > Attachments: CipherInputStreamTest.patch > > > The spec says for the method javax.crypto.CipherInputStream().close(): "Throws: IOException - if an I/O error occurs." > The Harmony implementation throws IOException for simple test while RI throws "IllegalStateException: Cipher not initialized". > Seems, it is 'non-bug diff'. > ================ test.java ===================== > import javax.crypto.*; > import java.io.*; > public class test { > public static void main (String[] args) { > try { > new CipherInputStream(new ByteArrayInputStream(new byte[]{1}), Cipher.getInstance("DES/CBC/PKCS5Padding")).close(); > } catch (Exception e) { > e.printStackTrace(); > } > try { > new CipherInputStream(new BufferedInputStream((InputStream)null), Cipher.getInstance("DES/CBC/PKCS5Padding")).close(); > } catch (Exception e) { > e.printStackTrace(); > } > } > } > ============================================ > Output: > C:\tmp\tmp17>C:\jdk1.5.0_06\bin\java.exe -cp . -showversion test > java version "1.5.0_06" > Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_06-b05) > Java HotSpot(TM) Client VM (build 1.5.0_06-b05, mixed mode) > java.lang.IllegalStateException: Cipher not initialized > at javax.crypto.Cipher.c(DashoA12275) > at javax.crypto.Cipher.doFinal(DashoA12275) > at javax.crypto.CipherInputStream.close(DashoA12275) > at test.main(test.java:8) > java.lang.IllegalStateException: Cipher not initialized > at javax.crypto.Cipher.c(DashoA12275) > at javax.crypto.Cipher.doFinal(DashoA12275) > at javax.crypto.CipherInputStream.close(DashoA12275) > at test.main(test.java:13) > C:\tmp\tmp17>C:\jrockit-jdk1.5.0-windows-ia32\bin\java.exe -cp . -showversion test > java version "1.5.0" > Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0-b64) > BEA WebLogic JRockit(R) (build dra-38972-20041208-2001-win-ia32, R25.0.0-75, GC: System optimized over throughput (initial strategy singleparpar)) > java.lang.IllegalStateException: Cipher not initialized > at javax.crypto.Cipher.c()V(DashoA12275:???) > at javax.crypto.Cipher.doFinal()[B(DashoA12275:???) > at javax.crypto.CipherInputStream.close()V(DashoA12275:???) > at test.main(test.java:8) > java.lang.IllegalStateException: Cipher not initialized > at javax.crypto.Cipher.c()V(DashoA12275:???) > at javax.crypto.Cipher.doFinal()[B(DashoA12275:???) > at javax.crypto.CipherInputStream.close()V(DashoA12275:???) > at test.main(test.java:13) > C:\tmp\tmp17>C:\harmony\trunk_0427\deploy\jdk\jre\bin\java.exe -cp . -showversion test > java version 1.5 (subset) > (c) Copyright 1991, 2006 The Apache Software Foundation or its licensors, as applicable. > java.io.IOException: Stream is closed > at java.io.BufferedInputStream.close(BufferedInputStream.java:116) > at javax.crypto.CipherInputStream.close(CipherInputStream.java:136) > at test.main(test.java:13) -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira