> From: "Luc Chapon" <[email protected]>
> To: "nashorn-dev" <[email protected]>
> Sent: Wednesday, January 24, 2024 1:02:48 PM
> Subject: Unsafe.defineAnonymousClass no longer exists in Java17!

> Hello all

> First message here

> We are facing a problem re Nashorn (latest) and java17

> In Context.java, line 330, you try to get a handle to a no longer existent
> method, Unsafe.defineAnonymousClass

> And fail of course.

> I’m trying to rewrite this part for our own temporary urgent need according to
> this.

> [ https://www.oracle.com/java/technologies/javase/17-relnote-issues.html |
> https://www.oracle.com/java/technologies/javase/17-relnote-issues.html ]

>> core-libs
>> [
>> https://www.oracle.com/java/technologies/javase/17-relnote-issues.html#JDK-8243287
>> | ➜ ] Removal of sun.misc.Unsafe::defineAnonymousClass

>> sun.misc.Unsafe::defineAnonymousClass API has been removed in JDK 17. The API
>> replacement is java.lang.invoke.MethodHandles.Lookup::defineHiddenClass and
>> java.lang.invoke.MethodHandles.Lookup::defineHiddenClassWithClassData .

> Are you aware of the problem? Is there a fix already available?

Hello, 
defineAnonymousClass have been replaced by Lookup.defineHiddenClass(...) [1] 
which is a public API. 

> Thank you!

regards, 
Rémi 

> Luc Chapon
> ChapsVision
> Suresnes, France

[1] 
https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/invoke/MethodHandles.Lookup.html#defineHiddenClass(byte[],boolean,java.lang.invoke.MethodHandles.Lookup.ClassOption...)
 

Reply via email to