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

svn commit: r489306 - in /harmony/enhanced/classlib/trunk/modules/security/src: main/java/common/java/security/ test/api/java/org/apache/harmony/security/tests/java/security/serialization/ test/resources/serialization/org/apache/harmony/security/tests/...

Author: smishura
Date: Thu Dec 21 01:59:32 2006
New Revision: 489306

URL: http://svn.apache.org/viewvc?view=rev&rev=489306
Log:
Apply modified patch for HARMONY-2762
[classlib][security]UnresolvedPermission fails in serialization.

Added:
    harmony/enhanced/classlib/trunk/modules/security/src/test/resources/serialization/org/apache/harmony/security/tests/java/security/serialization/UnresolvedPermissionTest.golden.ser   (with props)
Modified:
    harmony/enhanced/classlib/trunk/modules/security/src/main/java/common/java/security/UnresolvedPermission.java
    harmony/enhanced/classlib/trunk/modules/security/src/test/api/java/org/apache/harmony/security/tests/java/security/serialization/UnresolvedPermissionTest.java

Modified: harmony/enhanced/classlib/trunk/modules/security/src/main/java/common/java/security/UnresolvedPermission.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/security/src/main/java/common/java/security/UnresolvedPermission.java?view=diff&rev=489306&r1=489305&r2=489306
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/security/src/main/java/common/java/security/UnresolvedPermission.java (original)
+++ harmony/enhanced/classlib/trunk/modules/security/src/main/java/common/java/security/UnresolvedPermission.java Thu Dec 21 01:59:32 2006
@@ -317,14 +317,14 @@
         fields.put("actions", getUnresolvedActions()); //$NON-NLS-1$
         out.writeFields();
         if (targetCerts == null) {
-            out.write(0);
+            out.writeInt(0);
         } else {
-            out.write(targetCerts.length);
+            out.writeInt(targetCerts.length);
             for (int i = 0; i < targetCerts.length; i++) {
                 try {
                     byte[] enc = targetCerts[i].getEncoded();
                     out.writeUTF(targetCerts[i].getType());
-                    out.write(enc.length);
+                    out.writeInt(enc.length);
                     out.write(enc);
                 } catch (CertificateEncodingException cee) {
                     throw ((IOException)new NotSerializableException(
@@ -349,13 +349,13 @@
         }
         targetName = (String)fields.get("name", null); //$NON-NLS-1$
         targetActions = (String)fields.get("actions", null); //$NON-NLS-1$
-        int certNumber = in.read();
+        int certNumber = in.readInt();
         if (certNumber != 0) {
             targetCerts = new Certificate[certNumber];
             for (int i = 0; i < certNumber; i++) {
                 try {
                     String type = in.readUTF();
-                    int length = in.read();
+                    int length = in.readInt();
                     byte[] enc = new byte[length];
                     in.readFully(enc, 0, length);
                     targetCerts[i] = CertificateFactory.getInstance(type)

Modified: harmony/enhanced/classlib/trunk/modules/security/src/test/api/java/org/apache/harmony/security/tests/java/security/serialization/UnresolvedPermissionTest.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/security/src/test/api/java/org/apache/harmony/security/tests/java/security/serialization/UnresolvedPermissionTest.java?view=diff&rev=489306&r1=489305&r2=489306
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/security/src/test/api/java/org/apache/harmony/security/tests/java/security/serialization/UnresolvedPermissionTest.java (original)
+++ harmony/enhanced/classlib/trunk/modules/security/src/test/api/java/org/apache/harmony/security/tests/java/security/serialization/UnresolvedPermissionTest.java Thu Dec 21 01:59:32 2006
@@ -22,9 +22,12 @@
 
 package org.apache.harmony.security.tests.java.security.serialization;
 
+import java.io.ByteArrayInputStream;
 import java.security.UnresolvedPermission;
 import java.security.cert.Certificate;
+import java.security.cert.CertificateFactory;
 
+import org.apache.harmony.security.tests.support.cert.TestUtils;
 import org.apache.harmony.testframework.serialization.SerializationTest;
 
 
@@ -44,5 +47,21 @@
         return new Object[] {
                 new UnresolvedPermission("type", "name", "actions", null),
                 new UnresolvedPermission("type", null, null, new Certificate[0]) };
+    }
+    
+    public void testSerializationWithCertificates() throws Exception {
+
+        // Regression for HARMONY-2762
+        CertificateFactory certificateFactory = CertificateFactory
+                .getInstance("X.509");
+        Certificate certificate = certificateFactory
+                .generateCertificate(new ByteArrayInputStream(TestUtils
+                        .getEncodedX509Certificate()));
+
+        UnresolvedPermission unresolvedPermission = new UnresolvedPermission(
+                "java.security.SecurityPermission", "a.b.c", "action",
+                new Certificate[] { certificate });
+        SerializationTest.verifySelf(unresolvedPermission);
+        SerializationTest.verifyGolden(this, unresolvedPermission);
     }
 }

Added: harmony/enhanced/classlib/trunk/modules/security/src/test/resources/serialization/org/apache/harmony/security/tests/java/security/serialization/UnresolvedPermissionTest.golden.ser
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/security/src/test/resources/serialization/org/apache/harmony/security/tests/java/security/serialization/UnresolvedPermissionTest.golden.ser?view=auto&rev=489306
==============================================================================
Binary file - no diff available.

Propchange: harmony/enhanced/classlib/trunk/modules/security/src/test/resources/serialization/org/apache/harmony/security/tests/java/security/serialization/UnresolvedPermissionTest.golden.ser
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream