RFR 8193033 remove terminally deprecated sun.misc.Unsafe.defineClass

Chris Hegarty chris.hegarty at oracle.com
Thu Mar 15 17:16:47 UTC 2018


> On 15 Mar 2018, at 17:06, Paul Sandoz <paul.sandoz at oracle.com> wrote:
> 
> Hi,
> 
> Please review this patch to remove sun.misc.Unsafe.defineClass in 11.
> 
> There has been much outreach, by Alan and the Jigsaw team, about its public replacement MethodHandles.Lookup.defineClass.
> 
> CSR is here:
> 
>  https://bugs.openjdk.java.net/browse/JDK-8199699

Looks good Paul.   I don’t think that a CSR is strictly needed, but does no harm.

-Chris.

> Thanks,
> Paul.
> 
> 
> diff -r 3c0a12972165 src/jdk.unsupported/share/classes/sun/misc/Unsafe.java
> --- a/src/jdk.unsupported/share/classes/sun/misc/Unsafe.java	Thu Mar 15 08:11:01 2018 -0700
> +++ b/src/jdk.unsupported/share/classes/sun/misc/Unsafe.java	Thu Mar 15 09:51:00 2018 -0700
> @@ -811,25 +811,6 @@
>     /// random trusted operations from JNI:
> 
>     /**
> -     * Tells the VM to define a class, without security checks.  By default, the
> -     * class loader and protection domain come from the caller's class.
> -     *
> -     * @deprecated Use {@link java.lang.invoke.MethodHandles.Lookup#defineClass MethodHandles.Lookup#defineClass}
> -     * to define a class to the same class loader and in the same runtime package
> -     * and {@linkplain java.security.ProtectionDomain protection domain} of a
> -     * given {@code Lookup}'s {@linkplain java.lang.invoke.MethodHandles.Lookup#lookupClass() lookup class}.
> -     *
> -     * @see java.lang.invoke.MethodHandles.Lookup#defineClass(byte[])
> -     */
> -    @Deprecated(since="9", forRemoval=true)
> -    @ForceInline
> -    public Class<?> defineClass(String name, byte[] b, int off, int len,
> -                                ClassLoader loader,
> -                                ProtectionDomain protectionDomain) {
> -        return theInternalUnsafe.defineClass(name, b, off, len, loader, protectionDomain);
> -    }
> -
> -    /**
>      * Defines a class but does not make it known to the class loader or system dictionary.
>      * <p>
>      * For each CP entry, the corresponding CP patch must either be null or have



More information about the jigsaw-dev mailing list