<html><body><div style="font-family: arial, helvetica, sans-serif; font-size: 12pt; color: #000000"><div><br></div><div><br></div><hr id="zwchr" data-marker="__DIVIDER__"><div data-marker="__HEADERS__"><blockquote style="border-left:2px solid #1010FF;margin-left:5px;padding-left:5px;color:#000;font-weight:normal;font-style:normal;text-decoration:none;font-family:Helvetica,Arial,sans-serif;font-size:12pt;"><b>From: </b>"Luc Chapon" <sxilderik@gmail.com><br><b>To: </b>"nashorn-dev" <nashorn-dev@openjdk.org><br><b>Sent: </b>Wednesday, January 24, 2024 1:02:48 PM<br><b>Subject: </b>Unsafe.defineAnonymousClass no longer exists in Java17!<br></blockquote></div><div data-marker="__QUOTED_TEXT__"><blockquote style="border-left:2px solid #1010FF;margin-left:5px;padding-left:5px;color:#000;font-weight:normal;font-style:normal;text-decoration:none;font-family:Helvetica,Arial,sans-serif;font-size:12pt;"><div dir="ltr"><div class="gmail_default" style="font-family:georgia,serif;color:#20124d">Hello all</div><div class="gmail_default" style="font-family:georgia,serif;color:#20124d"><br></div><div class="gmail_default" style="font-family:georgia,serif;color:#20124d">First message here</div><div class="gmail_default" style="font-family:georgia,serif;color:#20124d"><br></div><div class="gmail_default" style="font-family:georgia,serif;color:#20124d">We are facing a problem re Nashorn (latest) and java17</div><div class="gmail_default" style="font-family:georgia,serif;color:#20124d"><br></div><div class="gmail_default" style="font-family:georgia,serif;color:#20124d">In Context.java, line 330, you try to get a handle to a no longer existent method, Unsafe.defineAnonymousClass</div><div class="gmail_default" style="font-family:georgia,serif;color:#20124d"><br></div><div class="gmail_default" style="font-family:georgia,serif;color:#20124d">And fail of course.</div><div class="gmail_default" style="font-family:georgia,serif;color:#20124d"><br></div><div class="gmail_default" style="font-family:georgia,serif;color:#20124d">I’m trying to rewrite this part for our own temporary urgent need according to this.<br><br><a href="https://www.oracle.com/java/technologies/javase/17-relnote-issues.html" target="_blank">https://www.oracle.com/java/technologies/javase/17-relnote-issues.html</a><br></div><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div class="gmail_default" style="font-family:georgia,serif;color:#20124d"><div style="box-sizing:border-box;margin:0px;padding:0px;list-style:none;background-repeat:no-repeat;color:rgb(0,0,0);font-family:OracleSansVF,OracleSansVFCyGr,OracleSansFB,-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue",sans-serif;font-size:14.63px;background-color:rgb(251,249,248)">core-libs</div></div><div class="gmail_default" style="font-family:georgia,serif;color:#20124d"><b style="box-sizing:border-box;margin:0px;padding:0px;list-style:none;background-repeat:no-repeat;color:rgb(0,0,0);font-family:OracleSansVF,OracleSansVFCyGr,OracleSansFB,-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue",sans-serif;font-size:14.63px;background-color:rgb(251,249,248)"><a href="https://www.oracle.com/java/technologies/javase/17-relnote-issues.html#JDK-8243287" style="box-sizing:border-box;margin:0px;padding:0px;list-style:none;background-repeat:no-repeat;color:rgb(0,107,143);text-decoration-line:none" target="_blank"><span class="gmail-arrow" style="box-sizing:border-box;margin:0px;padding:0px;list-style:none;background-repeat:no-repeat">➜</span></a> Removal of sun.misc.Unsafe::defineAnonymousClass</b></div><div class="gmail_default" style="font-family:georgia,serif;color:#20124d"><p style="box-sizing:border-box;margin:0px 0px 1.1em;padding:0px;list-style:none;background-repeat:no-repeat;line-height:1.55;color:rgb(0,0,0);font-family:OracleSansVF,OracleSansVFCyGr,OracleSansFB,-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue",sans-serif;font-size:14.63px;background-color:rgb(251,249,248)"><code style="box-sizing:border-box;margin:0px;padding:0px;list-style:none;background-repeat:no-repeat">sun.misc.Unsafe::defineAnonymousClass</code> API has been removed in JDK 17. The API replacement is <code style="box-sizing:border-box;margin:0px;padding:0px;list-style:none;background-repeat:no-repeat">java.lang.invoke.MethodHandles.Lookup::defineHiddenClass</code> and <code style="box-sizing:border-box;margin:0px;padding:0px;list-style:none;background-repeat:no-repeat">java.lang.invoke.MethodHandles.Lookup::defineHiddenClassWithClassData</code>.</p></div></blockquote><div class="gmail_default" style="font-family:georgia,serif;color:#20124d"><br></div><div class="gmail_default" style="font-family:georgia,serif;color:#20124d">Are you aware of the problem? Is there a fix already available?</div></div></blockquote><div><br></div><div>Hello,<br data-mce-bogus="1"></div><div>defineAnonymousClass have been replaced by Lookup.defineHiddenClass(...) [1] which is a public API.</div><br><blockquote style="border-left:2px solid #1010FF;margin-left:5px;padding-left:5px;color:#000;font-weight:normal;font-style:normal;text-decoration:none;font-family:Helvetica,Arial,sans-serif;font-size:12pt;"><div dir="ltr"><div class="gmail_default" style="font-family:georgia,serif;color:#20124d"><br></div><div class="gmail_default" style="font-family:georgia,serif;color:#20124d">Thank you!</div></div></blockquote><div><br></div><div>regards,<br data-mce-bogus="1"></div><div>Rémi<br data-mce-bogus="1"></div><div><br data-mce-bogus="1"></div><blockquote style="border-left:2px solid #1010FF;margin-left:5px;padding-left:5px;color:#000;font-weight:normal;font-style:normal;text-decoration:none;font-family:Helvetica,Arial,sans-serif;font-size:12pt;"><div dir="ltr"><div class="gmail_default" style="font-family:georgia,serif;color:#20124d"><br></div><div class="gmail_default" style="font-family:georgia,serif;color:#20124d">Luc Chapon</div><div class="gmail_default" style="font-family:georgia,serif;color:#20124d">ChapsVision</div><div class="gmail_default" style="font-family:georgia,serif;color:#20124d">Suresnes, France</div></div></blockquote><div><br></div><div>[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...)<div><br data-mce-bogus="1"></div></div><div><br data-mce-bogus="1"></div></div></div></body></html>