> 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...)
