< prev index next >

src/java.base/share/classes/jdk/internal/misc/ExtendedMapMode.java

Print this page

        

@@ -25,23 +25,27 @@
 
 package jdk.internal.misc;
 
 import java.lang.invoke.MethodHandle;
 import java.lang.invoke.MethodHandles;
+import java.lang.invoke.MethodHandles.Lookup;
 import java.lang.invoke.MethodType;
 import java.nio.channels.FileChannel.MapMode;
+import java.security.AccessController;
+import java.security.PrivilegedExceptionAction;
 
 /**
  * JDK-specific map modes implemented in java.base.
  */
 public class ExtendedMapMode {
 
     static final MethodHandle MAP_MODE_CONSTRUCTOR;
-
     static {
         try {
-            var lookup = MethodHandles.privateLookupIn(MapMode.class, MethodHandles.lookup());
+            PrivilegedExceptionAction<Lookup> pae = () ->
+                MethodHandles.privateLookupIn(MapMode.class, MethodHandles.lookup());
+            Lookup lookup = AccessController.doPrivileged(pae);
             var methodType = MethodType.methodType(void.class, String.class);
             MAP_MODE_CONSTRUCTOR = lookup.findConstructor(MapMode.class, methodType);
         } catch (Exception e) {
             throw new InternalError(e);
         }
< prev index next >