From e755efce8f87ba0b194aab239570f6a0690dc88a Mon Sep 17 00:00:00 2001 From: bryce Date: Fri, 23 Jul 2004 22:20:14 +0000 Subject: 2004-07-23 Bryce McKinlay * gnu/java/net/protocol/http/Connection.java: Use GetPropertyAction for privileged getProperty calls. * java/io/ObjectOutputStream.java (getField): No longer static. Use SetAccessibleAction instead of anonymous class for doPrivileged call. (getMethod): Likewise. (setAccessible): New field. PrivilegedAction object to use when calling setAccessible. * java/io/ObjectStreamClass.java (calculateOffsets): Use SetAccessibleAction instead of anonymous class for diPrivileged call. (setFields): Likewise. (getClassUID): Likewise. (findMethod): Likewise. * gnu/java/security/action/GetPropertyAction.java: New class. * gnu/java/security/action/SetAccessibleAction.java: New class. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@85097 138bc75d-0d04-0410-961f-82ee72b054a4 --- libjava/java/io/ObjectOutputStream.java | 26 ++++++++------------------ 1 file changed, 8 insertions(+), 18 deletions(-) (limited to 'libjava/java/io/ObjectOutputStream.java') diff --git a/libjava/java/io/ObjectOutputStream.java b/libjava/java/io/ObjectOutputStream.java index cc77976b492..2435b070d08 100644 --- a/libjava/java/io/ObjectOutputStream.java +++ b/libjava/java/io/ObjectOutputStream.java @@ -48,6 +48,7 @@ import java.util.Hashtable; import gnu.java.io.ObjectIdentityWrapper; import gnu.java.lang.reflect.TypeSignature; +import gnu.java.security.action.SetAccessibleAction; import gnu.classpath.Configuration; /** @@ -1516,20 +1517,14 @@ public class ObjectOutputStream extends OutputStream } } - private static Field getField (Class klass, String name) + private Field getField (Class klass, String name) throws java.io.InvalidClassException { try { final Field f = klass.getDeclaredField(name); - AccessController.doPrivileged(new PrivilegedAction() - { - public Object run() - { - f.setAccessible(true); - return null; - } - }); + setAccessible.setMember(f); + AccessController.doPrivileged(setAccessible); return f; } catch (java.lang.NoSuchFieldException e) @@ -1539,18 +1534,12 @@ public class ObjectOutputStream extends OutputStream } } - private static Method getMethod (Class klass, String name, Class[] args) + private Method getMethod (Class klass, String name, Class[] args) throws java.lang.NoSuchMethodException { final Method m = klass.getDeclaredMethod(name, args); - AccessController.doPrivileged(new PrivilegedAction() - { - public Object run() - { - m.setAccessible(true); - return null; - } - }); + setAccessible.setMember(m); + AccessController.doPrivileged(setAccessible); return m; } @@ -1583,6 +1572,7 @@ public class ObjectOutputStream extends OutputStream private Hashtable OIDLookupTable; private int protocolVersion; private boolean useSubclassMethod; + private SetAccessibleAction setAccessible = new SetAccessibleAction(); // The nesting depth for debugging output private int depth = 0; -- cgit v1.2.1