Index: java/security/AccessControlContext.java =================================================================== RCS file: /cvsroot/classpath/classpath/java/security/AccessControlContext.java,v retrieving revision 1.5 diff -u -w -r1.5 AccessControlContext.java --- java/security/AccessControlContext.java 22 Jan 2002 22:27:00 -0000 1.5 +++ java/security/AccessControlContext.java 10 Feb 2004 18:52:03 -0000 @@ -1,5 +1,5 @@ /* AccessControlContext.java --- Access Control Context Class - Copyright (C) 1999 Free Software Foundation, Inc. + Copyright (C) 1999,2004 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -37,6 +37,9 @@ package java.security; +import java.io.PrintWriter; +import java.io.StringWriter; + /** AccessControlContext makes system resource access decsion based on permission rights. @@ -53,7 +56,7 @@ */ public final class AccessControlContext { - private ProtectionDomain protectionDomain[]; + private final ProtectionDomain protectionDomain[]; private DomainCombiner combiner; /** @@ -69,7 +72,7 @@ for (i = 0, j = 0; i < count; i++) { for (k = 0; k < i; k++) - if (context[k] == protectionDomain[i]) + if (context[k].equals(context[i])) break; if (k != i) //it means previous loop did not complete continue; @@ -81,7 +84,7 @@ for (i = 0, j = 0; i < count2; i++) { for (k = 0; k < i; k++) - if (context[k] == protectionDomain[i]) + if (context[k].equals(context[i])) break; if (k != i) //it means previous loop did not complete continue; @@ -171,5 +174,25 @@ h ^= protectionDomain[i].hashCode(); return h; + } + + public String toString() + { + StringWriter str = new StringWriter(); + PrintWriter out = new PrintWriter(str, false); + out.print (AccessControlContext.class.getName()); + out.println (" [ domains = "); + for (int i = 0; i < protectionDomain.length; i++) + { + out.println(protectionDomain[i]); + } + if (combiner != null) + { + out.print("domain combiner = "); + out.println(combiner); + } + out.println("]"); + out.flush(); + return str.toString(); } }