You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by ml...@apache.org on 2006/10/12 13:03:13 UTC

svn commit: r463187 - in /incubator/harmony/enhanced/classlib/trunk/modules/crypto/src: main/java/javax/crypto/CipherOutputStream.java test/api/java/org/apache/harmony/crypto/tests/javax/crypto/CipherOutputStreamTest.java

Author: mloenko
Date: Thu Oct 12 04:03:11 2006
New Revision: 463187

URL: http://svn.apache.org/viewvc?view=rev&rev=463187
Log:
refixed HARMONY-1139
[classlib][crypto] compatibility: CipherOutputStream().close() throws the IllegalStateException on RI and the NPE on Harmony

Modified:
    incubator/harmony/enhanced/classlib/trunk/modules/crypto/src/main/java/javax/crypto/CipherOutputStream.java
    incubator/harmony/enhanced/classlib/trunk/modules/crypto/src/test/api/java/org/apache/harmony/crypto/tests/javax/crypto/CipherOutputStreamTest.java

Modified: incubator/harmony/enhanced/classlib/trunk/modules/crypto/src/main/java/javax/crypto/CipherOutputStream.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/crypto/src/main/java/javax/crypto/CipherOutputStream.java?view=diff&rev=463187&r1=463186&r2=463187
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/crypto/src/main/java/javax/crypto/CipherOutputStream.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/crypto/src/main/java/javax/crypto/CipherOutputStream.java Thu Oct 12 04:03:11 2006
@@ -95,9 +95,14 @@
     public void close() throws IOException {
         byte[] result;
         try {
-            result = cipher.doFinal();
-            if (result != null) {
-                out.write(result);
+            if (cipher != null) {
+                result = cipher.doFinal();
+                if (result != null) {
+                    out.write(result);
+                }
+            }
+            if (out != null) {
+                out.flush();
             }
         } catch (BadPaddingException e) {
             throw new IOException(e.getMessage());
@@ -105,7 +110,6 @@
             throw new IOException(e.getMessage());
         } finally {
             if (out != null) {
-                out.flush();
                 out.close();
             }
         }

Modified: incubator/harmony/enhanced/classlib/trunk/modules/crypto/src/test/api/java/org/apache/harmony/crypto/tests/javax/crypto/CipherOutputStreamTest.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/crypto/src/test/api/java/org/apache/harmony/crypto/tests/javax/crypto/CipherOutputStreamTest.java?view=diff&rev=463187&r1=463186&r2=463187
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/crypto/src/test/api/java/org/apache/harmony/crypto/tests/javax/crypto/CipherOutputStreamTest.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/crypto/src/test/api/java/org/apache/harmony/crypto/tests/javax/crypto/CipherOutputStreamTest.java Thu Oct 12 04:03:11 2006
@@ -31,7 +31,16 @@
                     .getInstance("DES/CBC/PKCS5Padding")).close();
             fail("IllegalStateException expected");
         } catch (IllegalStateException e) {
-            //expected
+            // expected
+        }
+
+        CipherOutputStream ch = new CipherOutputStream((OutputStream) null) {};
+        try {
+            new CipherOutputStream(ch, Cipher
+                    .getInstance("DES/CBC/PKCS5Padding")).close();
+            fail("IllegalStateException expected");
+        } catch (IllegalStateException e) {
+            // expected
         }
     }
 }