I'm sorry! I modified this source code to support UnresolvedPermissionTest. But I didn't run the above KrbServicePermissionCollectionTest/KrbDelegationPermissionCollectionTest tests.
I have attached a new patch "HARMONY-5962v2.diff" to the issue [1] to solve this integrity failures. Would you please help me to review this patch and publish it? [1] https://issues.apache.org/jira/browse/HARMONY-5962 On Mon, Sep 1, 2008 at 12:32 AM, chunrong lai <[EMAIL PROTECTED]> wrote: > I see the commit only modifies some tests. But it breaks the test cases > > org.apache.harmony.auth.tests.javax.security.auth.kerberos.serialization.KrbServicePermissionCollectionTest > and > > org.apache.harmony.auth.tests.javax.security.auth.kerberos.serialization.KrbDelegationPermissionCollectionTest > of classlib test suites, in our integrity testing platforms. > > Should we have a check? > Thanks. > > > http://people.apache.org/~chunrong/harmony-integrity/windows_x86/classlib-test/<http://people.apache.org/%7Echunrong/harmony-integrity/windows_x86/classlib-test/> > junit.framework.AssertionFailedError: > expected:<[(javax.security.auth.kerberos.DelegationPermission "AAA" "BBB"), > (javax.security.auth.kerberos.DelegationPermission "AAA" "CCC"), > (javax.security.auth.kerberos.DelegationPermission "BBB" "CCC")]> but > was:<[(javax.security.auth.kerberos.DelegationPermission "BBB" "CCC"), > (javax.security.auth.kerberos.DelegationPermission "AAA" "CCC"), > (javax.security.auth.kerberos.DelegationPermission "AAA" "BBB")]> > > > On 8/28/08, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote: > > > > Author: tellison > > Date: Thu Aug 28 04:56:31 2008 > > New Revision: 689792 > > > > URL: http://svn.apache.org/viewvc?rev=689792&view=rev > > Log: > > Apply patch for HARMONY-5962 ([classlib][support] Fail on > > UnresolvedPermissionTest and UnresolvedPermissionCollectionTest with Sun > > JDK) > > > > Modified: > > > > > harmony/enhanced/classlib/trunk/support/src/test/java/org/apache/harmony/testframework/serialization/SerializationTest.java > > > > Modified: > > > harmony/enhanced/classlib/trunk/support/src/test/java/org/apache/harmony/testframework/serialization/SerializationTest.java > > URL: > > > http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/support/src/test/java/org/apache/harmony/testframework/serialization/SerializationTest.java?rev=689792&r1=689791&r2=689792&view=diff > > > > > ============================================================================== > > --- > > > harmony/enhanced/classlib/trunk/support/src/test/java/org/apache/harmony/testframework/serialization/SerializationTest.java > > (original) > > +++ > > > harmony/enhanced/classlib/trunk/support/src/test/java/org/apache/harmony/testframework/serialization/SerializationTest.java > > Thu Aug 28 04:56:31 2008 > > @@ -35,9 +35,9 @@ > > import java.lang.reflect.Method; > > import java.security.Permission; > > import java.security.PermissionCollection; > > -import java.util.Collection; > > +import java.security.UnresolvedPermission; > > +import java.util.ArrayList; > > import java.util.Collections; > > -import java.util.HashSet; > > > > import junit.framework.Assert; > > import junit.framework.TestCase; > > @@ -292,13 +292,86 @@ > > Assert.assertEquals(initPC.isReadOnly(), > dserPC.isReadOnly()); > > > > // verify collection of permissions > > - Collection<Permission> refCollection = new > > HashSet<Permission>( > > - Collections.list(initPC.elements())); > > - Collection<Permission> tstCollection = new > > HashSet<Permission>( > > - Collections.list(dserPC.elements())); > > + ArrayList<Permission> refList = > > Collections.list(initPC.elements()); > > + ArrayList<Permission> tstList = > > Collections.list(dserPC.elements()); > > + Assert.assertEquals(refList.size(), refList.size()); > > + > > + int size = refList.size(); > > + if (size > 0) { > > + if (refList.get(0) instanceof UnresolvedPermission) { > > + boolean found; > > + UnresolvedPermission refPerm, tstPerm; > > + for (int i = 0; i < size; i++) { > > + found = false; > > + refPerm = (UnresolvedPermission)refList.get(i); > > + for(int j = 0; j < size; j++){ > > + tstPerm = > > (UnresolvedPermission)tstList.get(i); > > + if(equalsUnresolvedPermission(refPerm, > > tstPerm)){ > > + found = true; > > + break; > > + } > > + } > > + > > + Assert.assertTrue(found); > > + } > > + } else { > > + Assert.assertEquals(refList, tstList); > > + } > > + } > > + } > > + > > + /* > > + * check whether the given two UnresolvedPermission objects > equal > > to each other > > + */ > > + private boolean equalsUnresolvedPermission(UnresolvedPermission > > up1, > > + UnresolvedPermission up2) { > > + > > + java.security.cert.Certificate[] certs = > > up1.getUnresolvedCerts(); > > + if (certs != null && certs.length == 0) { > > + if(null == up2.getUnresolvedCerts()){ > > + if (up1.getName().equals(up2.getName())){ > > + String up1Name = up1.getUnresolvedName(); > > + String up2Name = up2.getUnresolvedName(); > > + if(up1Name == null ? up2Name == null : > > up1Name.equals(up2Name)){ > > + String up1Actions = > > up1.getUnresolvedActions(); > > + String up2Actions = > > up2.getUnresolvedActions(); > > + return up1Actions == null ? up2Actions == > null > > : up1Actions.equals(up2Actions); > > + } > > + } > > + } > > + > > + return false; > > + } > > + > > + return up1.equals(up2); > > + > > + } > > + }; > > + > > + /** > > + * Comparator for java.security.UnresolvedPermission objects > > + */ > > + public final static SerializableAssert > > UNRESOLVED_PERMISSION_COMPARATOR = new SerializableAssert() { > > > > - Assert.assertEquals(refCollection, tstCollection); > > + public void assertDeserialized(Serializable initial, > > + Serializable deserialized) { > > + UnresolvedPermission initPerm = (UnresolvedPermission) > > initial; > > + UnresolvedPermission dserPerm = (UnresolvedPermission) > > deserialized; > > + > > + java.security.cert.Certificate[] certs = > > initPerm.getUnresolvedCerts(); > > + if (certs != null && certs.length == 0) { > > + Assert.assertEquals(initPerm.getUnresolvedType(), > dserPerm > > + .getUnresolvedType()); > > + Assert.assertEquals(initPerm.getUnresolvedName(), > dserPerm > > + .getUnresolvedName()); > > + Assert.assertEquals(initPerm.getUnresolvedActions(), > > dserPerm > > + .getUnresolvedActions()); > > + Assert.assertNull(dserPerm.getUnresolvedCerts()); > > + } else { > > + Assert.assertEquals(initPerm, dserPerm); > > + } > > } > > + > > }; > > > > /** > > @@ -334,6 +407,9 @@ > > if (m.getDeclaringClass() != Object.class) { > > // one of classes overrides Object.equals(Object) method > > // use default comparator > > + if (object instanceof UnresolvedPermission) { > > + return UNRESOLVED_PERMISSION_COMPARATOR; > > + } > > return DEFAULT_COMPARATOR; > > } > > > > > > > > >
