You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Vladimir Ivanov (JIRA)" <ji...@apache.org> on 2006/08/08 06:30:14 UTC

[jira] Created: (HARMONY-1087) [classlib][crypto] compatibility: RI throws IllegalStateException while Harmony IOException (according to spec)

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

        

[jira] Assigned: (HARMONY-1087) [classlib][crypto] compatibility: RI throws IllegalStateException while Harmony IOException (according to spec)

Posted by "Mikhail Loenko (JIRA)" <ji...@apache.org>.
     [ http://issues.apache.org/jira/browse/HARMONY-1087?page=all ]

Mikhail Loenko reassigned HARMONY-1087:
---------------------------------------

    Assignee: Mikhail Loenko

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

        

[jira] Closed: (HARMONY-1087) [classlib][crypto] compatibility: RI throws IllegalStateException while Harmony IOException (according to spec)

Posted by "Mikhail Loenko (JIRA)" <ji...@apache.org>.
     [ http://issues.apache.org/jira/browse/HARMONY-1087?page=all ]

Mikhail Loenko closed HARMONY-1087.
-----------------------------------


> [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, patch.txt
>
>
> 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

        

[jira] Commented: (HARMONY-1087) [classlib][crypto] compatibility: RI throws IllegalStateException while Harmony IOException (according to spec)

Posted by "Boris Kuznetsov (JIRA)" <ji...@apache.org>.
    [ http://issues.apache.org/jira/browse/HARMONY-1087?page=comments#action_12431508 ] 
            
Boris Kuznetsov commented on HARMONY-1087:
------------------------------------------

There is a difference in RI and Harmony behavior: RI resets the encapsulated cipher object to its initial state (calls doFinal method of cipher - see RI's stack trace) but Harmony doesn't. Such behavior is not specified in CipherInputStream specification but it may affect some applications. So CipherInputStream.close() implementation should be fixed.

Note:
1. Resetting of encapsulated cipher is specified for CipherOutputStream.close() but not specified for CipherInputStream.close(). It looks like spec. bug.
2. According the spec. cipher must be initialized before being used by a CipherInputStream. So throwing of "IllegalStateException: Cipher not initialized" is a reasonable behavior.


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

        

[jira] Commented: (HARMONY-1087) [classlib][crypto] compatibility: RI throws IllegalStateException while Harmony IOException (according to spec)

Posted by "Ilya Okomin (JIRA)" <ji...@apache.org>.
    [ 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

        

[jira] Updated: (HARMONY-1087) [classlib][crypto] compatibility: RI throws IllegalStateException while Harmony IOException (according to spec)

Posted by "Boris Kuznetsov (JIRA)" <ji...@apache.org>.
     [ http://issues.apache.org/jira/browse/HARMONY-1087?page=all ]

Boris Kuznetsov updated HARMONY-1087:
-------------------------------------

    Attachment: patch.txt

Patch with fix.

> [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, patch.txt
>
>
> 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

        

[jira] Updated: (HARMONY-1087) [classlib][crypto] compatibility: RI throws IllegalStateException while Harmony IOException (according to spec)

Posted by "Vladimir Ivanov (JIRA)" <ji...@apache.org>.
     [ 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

        

[jira] Resolved: (HARMONY-1087) [classlib][crypto] compatibility: RI throws IllegalStateException while Harmony IOException (according to spec)

Posted by "Mikhail Loenko (JIRA)" <ji...@apache.org>.
     [ http://issues.apache.org/jira/browse/HARMONY-1087?page=all ]

Mikhail Loenko resolved HARMONY-1087.
-------------------------------------

    Resolution: Fixed

fixed in revision 441013
Please verify

> [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, patch.txt
>
>
> 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

        

[jira] Commented: (HARMONY-1087) [classlib][crypto] compatibility: RI throws IllegalStateException while Harmony IOException (according to spec)

Posted by "Vladimir Ivanov (JIRA)" <ji...@apache.org>.
    [ http://issues.apache.org/jira/browse/HARMONY-1087?page=comments#action_12433411 ] 
            
Vladimir Ivanov commented on HARMONY-1087:
------------------------------------------

verified, thanks

> [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, patch.txt
>
>
> 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