<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body>
Hi everyone!<br>
<br>
it looks like in jdk 24 compiler started naming lambda methods
slightly differently,<br>
consider the code:<br>
<div style="background-color:#ffffff;color:#080808">
<pre
style="font-family:'Source Code Pro',monospace;font-size:12,0pt;"><span
style="color:#0033b3;">public class </span><span
style="color:#000000;">Lambdas1 </span>{
<span style="color:#0033b3;">public static void </span><span
style="color:#00627a;">main</span>(<span style="color:#000000;">String</span>[] <span
style="color:#000000;">args</span>) {
<span style="color:#000000;">Runnable r3 </span>= () -> {
<span style="color:#000000;">Runnable r4 </span>= () -> <span
style="color:#000000;">System</span>.<span
style="color:#871094;font-style:italic;">out</span>.println(<span
style="color:#0033b3;">new </span>Exception().getStackTrace()[<span
style="color:#1750eb;">0</span>]);
<span style="color:#000000;">r4</span>.run();
<span style="color:#000000;">System</span>.<span
style="color:#871094;font-style:italic;">out</span>.println(<span
style="color:#0033b3;">new </span>Exception().getStackTrace()[<span
style="color:#1750eb;">0</span>]);
};
<span style="color:#000000;">r3</span>.run();
}
}
</pre>
with jdk 23 the output is:<br>
Lambdas1.lambda$main$<b>0</b>(Lambdas1.java:7)<br>
Lambdas1.lambda$main$<b>1</b>(Lambdas1.java:9)<br>
<br>
</div>
with jdk 24:<br>
Lambdas1.lambda$main$<b>1</b>(Lambdas1.java:4)<br>
Lambdas1.lambda$main$<b>0</b>(Lambdas1.java:6)<br>
<br>
I know that this is not specified anywhere, but Intellij IDEA relied
on this and it caused issues with debugger features:<br>
<a class="moz-txt-link-freetext" href="https://youtrack.jetbrains.com/issue/IDEA-375811">https://youtrack.jetbrains.com/issue/IDEA-375811</a><br>
<br>
Was this change really intended? Could anyone please point me to the
fix that caused this?<br>
<br>
Thanks!<br>
Egor<br>
</body>
</html>