<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Aptos;
        panose-1:2 11 0 4 2 2 2 2 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        font-size:10.0pt;
        font-family:"Aptos",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:"Aptos",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;
        mso-ligatures:none;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style>
</head>
<body lang="EN-CA" link="blue" vlink="purple" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt">Thanks for reporting the issue.  I see Ioi has run into the same problem with MethodHandleImpl::BindCaller and is putting together a fix in
<a href="https://bugs.openjdk.org/browse/JDK-8354890">https://bugs.openjdk.org/browse/JDK-8354890</a><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">For the second issue:<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:36.0pt"><span style="font-size:12.0pt">I still got this error and warning:<br>
<br>
[0.026s][error][cds] CDS archive has aot-linked classes. It cannot be used when archived full module graph is not used.<br>
[0.017s][warning][cds] shared class paths mismatch (hint: enable -Xlog:class+path=info to diagnose the failure)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">Have you confirmed that the class paths are the same between the assembly phase (</span><span style="font-size:12.0pt">-XX:AOTMode=create)
</span><span style="font-size:11.0pt">and when using the cache?  Confirming the “</span><span style="font-size:12.0pt">-Xlog:class+path=info” output from both the assembly and production runs are the same would help.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:12.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:12.0pt">--Dan</span><span style="font-size:11.0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<div id="mail-editor-reference-message-container">
<div>
<div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:12.0pt;margin-left:36.0pt">
<b><span style="font-size:12.0pt;color:black">From: </span></b><span style="font-size:12.0pt;color:black">leyden-dev <leyden-dev-retn@openjdk.org> on behalf of ski n <raymondmeester@gmail.com><br>
<b>Date: </b>Friday, April 25, 2025 at 4:59</span><span style="font-size:12.0pt;font-family:"Arial",sans-serif;color:black"> </span><span style="font-size:12.0pt;color:black">AM<br>
<b>To: </b>leyden-dev@openjdk.org <leyden-dev@openjdk.org><br>
<b>Subject: </b>How to handle errors<o:p></o:p></span></p>
</div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<p class="MsoNormal" style="margin-left:36.0pt"><span style="font-size:12.0pt"><o:p> </o:p></span></p>
</div>
<p class="MsoNormal" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:12.0pt;margin-left:36.0pt">
<span style="font-size:12.0pt">Hi Leyden devs,<o:p></o:p></span></p>
</div>
<p class="MsoNormal" style="margin-left:36.0pt"><span style="font-size:12.0pt">I used CDS before with my Spring Boot application. I recently started to test Leyden with the recent released JDK24.01 (both GraalVM and Temurin). Likewise, I first want to test
 this<o:p></o:p></span></p>
</div>
<p class="MsoNormal" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:12.0pt;margin-left:36.0pt">
<span style="font-size:12.0pt">on my local laptop (Windows 11/intel i7), and try to implement this in my CI/CD to create the cache with a training run, probably with JDK25.<o:p></o:p></span></p>
</div>
<p class="MsoNormal" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:12.0pt;margin-left:36.0pt">
<span style="font-size:12.0pt">I run the following commands:<br>
<br>
D:\test\graalvm-jdk-24.0.1+9.1\bin\java -XX:AOTMode=record -XX:AOTConfiguration=app.aotconf -jar gateway-5.1.0.jar<br>
D:\test\graalvm-jdk-24.0.1+9.1\bin\java -XX:AOTMode=create -XX:AOTConfiguration=app.aotconf -XX:AOTCache=app.aot -jar gateway-5.1.0.jar<br>
D:\test\graalvm-jdk-24.0.1+9.1\bin\java -XX:AOTCache=app.aot -jar gateway-5.1.0.jar<o:p></o:p></span></p>
</div>
<p class="MsoNormal" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:12.0pt;margin-left:36.0pt">
<span style="font-size:12.0pt">However, on the second command, I get these warnings/errors:<br>
<br>
D:\test\jdk-24.0.1+9\bin\java -XX:AOTMode=create -XX:AOTConfiguration=app.aotconf -XX:AOTCache=app.aot -jar gateway-5.1.0.jar<br>
[0.657s][warning][cds] Skipping jdk/internal/event/Event: JFR event class<br>
[1.147s][warning][cds,heap] Archive heap points to a static field that may hold a different value at runtime:<br>
[1.148s][warning][cds,heap] Field: java/lang/invoke/MethodHandleImpl$BindCaller::CD_Object_array<br>
[1.150s][warning][cds,heap] Value: jdk.internal.constant.ArrayClassDescImpl<br>
[1.150s][warning][cds,heap] {0x0000000605959028} - klass: 'jdk/internal/constant/ArrayClassDescImpl' - flags:<br>
[1.150s][warning][cds,heap]<br>
[1.151s][warning][cds,heap]  - ---- fields (total size 3 words):<br>
[1.151s][warning][cds,heap]  - private final 'rank' 'I' @12  1 (0x00000001)<br>
[1.152s][warning][cds,heap]  - private final 'elementType' 'Ljava/lang/constant/ClassDesc;' @16  a 'jdk/internal/constant/ClassOrInterfaceDescImpl'{0x0000000605914380} (0xc0b22870)<br>
[1.152s][warning][cds,heap]  - private 'cachedDescriptorString' 'Ljava/lang/String;' @20  "[Ljava/lang/Object;"{0x0000000605959040} (0xc0b2b208)<br>
[1.152s][warning][cds,heap] --- trace begin ---<br>
[1.153s][warning][cds,heap] [ 0] {0x0000000605b73798} java.lang.Class (jdk.internal.constant.ConstantUtils::CD_Object_array)<br>
[1.153s][warning][cds,heap] [ 1] {0x0000000605959028} jdk.internal.constant.ArrayClassDescImpl<br>
[1.153s][warning][cds,heap] --- trace end ---<br>
[1.153s][warning][cds,heap]<br>
[1.154s][error  ][cds,heap] Scanned 65968 objects. Found 1 case(s) where an object points to a static field that may hold a different value at runtime.<br>
[1.154s][error  ][cds     ] An error has occurred while writing the shared archive file.<o:p></o:p></span></p>
</div>
<p class="MsoNormal" style="margin-left:36.0pt"><span style="font-size:12.0pt">I'm not really sure if this error means I cannot use the cache, but I manually removed the java/lang/invoke/MethodHandleImpl$BindCaller from the AOTCache. After that, I can create
 the cache and start my application.<o:p></o:p></span></p>
</div>
<p class="MsoNormal" style="margin-left:36.0pt"><span style="font-size:12.0pt"><o:p> </o:p></span></p>
</div>
<p class="MsoNormal" style="margin-left:36.0pt"><span style="font-size:12.0pt">I still got this error and warning:<br>
<br>
[0.026s][error][cds] CDS archive has aot-linked classes. It cannot be used when archived full module graph is not used.<br>
[0.017s][warning][cds] shared class paths mismatch (hint: enable -Xlog:class+path=info to diagnose the failure)<o:p></o:p></span></p>
<div>
<p class="MsoNormal" style="margin-left:36.0pt"><span style="font-size:12.0pt"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:12.0pt;margin-left:36.0pt">
<span style="font-size:12.0pt">It seems like the cache isn't properly applied, and I don't see a lot of startup time improvement (Is there a way to properly measure the difference between a normal run, and cached run?) I did measure it with timing, and find
 that cached run seems to be around 2 seconds fastes (from 8 seconds startup to 6 seconds startup). The test jar that I used can be downloaded from GitHub:<br>
<br>
<a href="https://github.com/assimbly/gateway/releases/tag/5.1.0Beta">https://github.com/assimbly/gateway/releases/tag/5.1.0Beta</a><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:12.0pt;margin-left:36.0pt">
<span style="font-size:12.0pt">I am creating the AOTCache properly? And how to mitigate such warnings/errors?<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:36.0pt"><span style="font-size:12.0pt">Raymond<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:12.0pt;margin-left:36.0pt">
<span style="font-size:12.0pt"><o:p> </o:p></span></p>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>