diff options
author | bryce <bryce@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-07-23 22:20:14 +0000 |
---|---|---|
committer | bryce <bryce@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-07-23 22:20:14 +0000 |
commit | e755efce8f87ba0b194aab239570f6a0690dc88a (patch) | |
tree | 96dc496d784f2249834ceb7610963655c445967c /libjava/java/io/ObjectStreamClass.java | |
parent | ad90b13f383877b0b26898d35fcf349188d6c277 (diff) | |
download | ppe42-gcc-e755efce8f87ba0b194aab239570f6a0690dc88a.tar.gz ppe42-gcc-e755efce8f87ba0b194aab239570f6a0690dc88a.zip |
2004-07-23 Bryce McKinlay <mckinlay@redhat.com>
* 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
Diffstat (limited to 'libjava/java/io/ObjectStreamClass.java')
-rw-r--r-- | libjava/java/io/ObjectStreamClass.java | 47 |
1 files changed, 13 insertions, 34 deletions
diff --git a/libjava/java/io/ObjectStreamClass.java b/libjava/java/io/ObjectStreamClass.java index ee23f5996b5..08576cd1f7a 100644 --- a/libjava/java/io/ObjectStreamClass.java +++ b/libjava/java/io/ObjectStreamClass.java @@ -57,6 +57,7 @@ import java.util.Hashtable; import java.util.Vector; import gnu.java.io.NullOutputStream; import gnu.java.lang.reflect.TypeSignature; +import gnu.java.security.action.SetAccessibleAction; import gnu.java.security.provider.Gnu; @@ -470,14 +471,8 @@ outer: } } final Method m = methods[i]; - AccessController.doPrivileged(new PrivilegedAction() - { - public Object run() - { - m.setAccessible(true); - return null; - } - }); + SetAccessibleAction setAccessible = new SetAccessibleAction(m); + AccessController.doPrivileged(setAccessible); return m; } } @@ -543,6 +538,8 @@ outer: // clazz. private void setFields(Class cl) { + SetAccessibleAction setAccessible = new SetAccessibleAction(); + if (!isSerializable() || isExternalizable()) { fields = NO_FIELDS; @@ -551,17 +548,11 @@ outer: try { - final Field serialPersistentFields = + final Field f = cl.getDeclaredField("serialPersistentFields"); - AccessController.doPrivileged(new PrivilegedAction() - { - public Object run() - { - serialPersistentFields.setAccessible(true); - return null; - } - }); - int modifiers = serialPersistentFields.getModifiers(); + setAccessible.setMember(f); + AccessController.doPrivileged(setAccessible); + int modifiers = f.getModifiers(); if (Modifier.isStatic(modifiers) && Modifier.isFinal(modifiers) @@ -617,14 +608,8 @@ outer: if (all_fields[from] != null) { final Field f = all_fields[from]; - AccessController.doPrivileged(new PrivilegedAction() - { - public Object run() - { - f.setAccessible(true); - return null; - } - }); + setAccessible.setMember(f); + AccessController.doPrivileged(setAccessible); fields[to] = new ObjectStreamField(all_fields[from]); to++; } @@ -651,14 +636,8 @@ outer: // may not be public AND we only want the serialVersionUID of this // class, not a superclass or interface. final Field suid = cl.getDeclaredField("serialVersionUID"); - AccessController.doPrivileged(new PrivilegedAction() - { - public Object run() - { - suid.setAccessible(true); - return null; - } - }); + SetAccessibleAction setAccessible = new SetAccessibleAction(suid); + AccessController.doPrivileged(setAccessible); int modifiers = suid.getModifiers(); if (Modifier.isStatic(modifiers) |