< prev index next >

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

Print this page

        

*** 25,47 **** package jdk.internal.misc; import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodHandles; import java.lang.invoke.MethodType; import java.nio.channels.FileChannel.MapMode; /** * 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()); var methodType = MethodType.methodType(void.class, String.class); MAP_MODE_CONSTRUCTOR = lookup.findConstructor(MapMode.class, methodType); } catch (Exception e) { throw new InternalError(e); } --- 25,51 ---- 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 { ! 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 >