harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ilya Okomin (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HARMONY-1087) [classlib][crypto] compatibility: RI throws IllegalStateException while Harmony IOException (according to spec)
Date Fri, 25 Aug 2006 09:31:25 GMT
    [ http://issues.apache.org/jira/browse/HARMONY-1087?page=comments#action_12430456 ] 
            
Ilya Okomin commented on HARMONY-1087:
--------------------------------------

On the current classlib there are no Exceptions thrown at all.
If you look at the CipherInputStream.close() method description in the spec: "The close method
of CipherInputStream calls the close method of its underlying input stream. ". Harmony implements
exactly what is said in the description. Both InputStream instances(ByteArrayInputStream,
BufferedInputStream) created from the test case suggested by Vladimir close without Exceptions
as well in Harmony as they do in RI (you can check it running next test):
================ test.java ===================== 
import java.io.*; 

public class test { 
    public static void main (String[] args) { 

        try {
            ByteArrayInputStream bais = new ByteArrayInputStream(new byte[] { 1 });
            bais.close();
            System.out.println("ok!");
        } catch (Exception e) {
            e.printStackTrace();
        }

        try {
            BufferedInputStream bis = new BufferedInputStream((InputStream) null);
            bis.close();
            System.out.println("ok!");
        } catch (Exception e) {
            e.printStackTrace();
        }
   } 
} 
============================================ 

Output: 

Harmony:java version "1.5.0" 
pre-alpha : not complete or compatible
svn = r431938, (Aug 16 2006), Windows/ia32/msvc 1310, release build
http://incubator.apache.org/harmony

ok!
ok!

RI: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))

ok!
ok!


Thus, behavior of Harmony looks quite normal for CipherInputStream.close(), IMHO it is 'non-bug
diff'.

> [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
>
> 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

        

Mime
View raw message