summaryrefslogtreecommitdiff
path: root/gnu/java/nio
diff options
context:
space:
mode:
authorMark Wielaard <mark@klomp.org>2005-12-22 16:55:01 +0000
committerMark Wielaard <mark@klomp.org>2005-12-22 16:55:01 +0000
commitc7705d1a457acc0313865b22c6fdb7ac415cd31d (patch)
tree544f1a2450d8300bb151ab018d22f8c5e60b0adb /gnu/java/nio
parent7ccffb673f401e3f232eccbefbb793cf15f2f7eb (diff)
downloadclasspath-c7705d1a457acc0313865b22c6fdb7ac415cd31d.tar.gz
* gnu/java/nio/charset/Provider.java (provider): Wrap initialization
of standard provider in a PrivilegedAction.
Diffstat (limited to 'gnu/java/nio')
-rw-r--r--gnu/java/nio/charset/Provider.java12
1 files changed, 11 insertions, 1 deletions
diff --git a/gnu/java/nio/charset/Provider.java b/gnu/java/nio/charset/Provider.java
index 3f25c5988..c7f7ed278 100644
--- a/gnu/java/nio/charset/Provider.java
+++ b/gnu/java/nio/charset/Provider.java
@@ -39,6 +39,8 @@ package gnu.java.nio.charset;
import java.nio.charset.Charset;
import java.nio.charset.spi.CharsetProvider;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
@@ -232,8 +234,16 @@ public final class Provider extends CharsetProvider
public static synchronized Provider provider ()
{
+ // The default provider is safe to instantiate.
if (singleton == null)
- singleton = new Provider ();
+ singleton = (Provider) AccessController.doPrivileged
+ (new PrivilegedAction()
+ {
+ public Object run()
+ {
+ return new Provider();
+ }
+ });
return singleton;
}
}