# cache: /home/claude/spring-boot-demo/aot-cache/work/refresh.aot, trained on JDK 25.0.4.1, extracted layout, default GC (G1), 2 CPUs == control: the same JVM, the same jar, the same path result: started, ready after 1987 ms (Started AotCacheApplication in 1.538 seconds) log: (nothing at warning or error level) == the application jar was rebuilt after a one-line code change, default AOTMode=auto result: started, ready after 4124 ms (Started AotCacheApplication in 3.453 seconds) log: [warning][aot] This file is not the one used while building the AOT cache: 'app.jar', timestamp has changed, size has changed log: [error ][aot] An error has occurred while processing the AOT cache. Run with -Xlog:aot for details. log: [error ][aot] shared class paths mismatch (hint: enable -Xlog:class+path=info to diagnose the failure) log: [error ][aot] Unable to map shared spaces == the same, with -XX:AOTMode=on result: did not start (exit code 1) log: [warning][aot] This file is not the one used while building the AOT cache: 'app.jar', timestamp has changed, size has changed log: [error ][aot] shared class paths mismatch (hint: enable -Xlog:class+path=info to diagnose the failure) log: [error ][aot] An error has occurred while processing the AOT cache. Run with -Xlog:aot for details. log: [error ][aot] unrecoverable error == a dependency jar has a different modification time (same bytes) result: started, ready after 3865 ms (Started AotCacheApplication in 3.201 seconds) log: [warning][aot] This file is not the one used while building the AOT cache: 'lib/spring-core-7.0.9.jar', timestamp has changed log: [error ][aot] An error has occurred while processing the AOT cache. Run with -Xlog:aot for details. log: [error ][aot] shared class paths mismatch (hint: enable -Xlog:class+path=info to diagnose the failure) log: [error ][aot] Unable to map shared spaces == the same files copied with plain cp (bytes and path layout identical, timestamps new) result: started, ready after 4013 ms (Started AotCacheApplication in 3.361 seconds) log: [warning][aot] This file is not the one used while building the AOT cache: 'app.jar', timestamp has changed log: [error ][aot] An error has occurred while processing the AOT cache. Run with -Xlog:aot for details. log: [error ][aot] shared class paths mismatch (hint: enable -Xlog:class+path=info to diagnose the failure) log: [error ][aot] Unable to map shared spaces == the application directory was moved after training (same bytes, different path) result: started, ready after 2005 ms (Started AotCacheApplication in 1.542 seconds) log: (nothing at warning or error level) == cache trained on the fat jar, run from the extracted layout result: started, ready after 3900 ms (Started AotCacheApplication in 3.262 seconds) log: [warning][aot] This file is not the one used while building the AOT cache: 'app.jar', size has changed log: [error ][aot] An error has occurred while processing the AOT cache. Run with -Xlog:aot for details. log: [error ][aot] shared class paths mismatch (hint: enable -Xlog:class+path=info to diagnose the failure) log: [error ][aot] Unable to map shared spaces == JDK 25's cache used by JDK 27 result: started, ready after 4221 ms (Started AotCacheApplication in 3.537 seconds) log: [warning][aot] The AOT cache version 0x13 does not match the required version 0x14. log: [warning][aot] The AOT cache has the wrong version. log: [error ][aot] An error has occurred while processing the AOT cache. Run with -Xlog:aot for details. log: [error ][aot] Loading static archive failed. log: [warning][aot] The AOT cache version 0x13 does not match the required version 0x14. == the same, with -XX:AOTMode=on result: did not start (exit code 1) log: [warning][aot] The AOT cache version 0x13 does not match the required version 0x14. log: [warning][aot] The AOT cache has the wrong version. log: [error ][aot] An error has occurred while processing the AOT cache. Run with -Xlog:aot for details. log: [error ][aot] Loading static archive failed. log: [warning][aot] The AOT cache version 0x13 does not match the required version 0x14. == -XX:+UseCompactObjectHeaders added at run time only (JDK 25) result: started, ready after 4138 ms (Started AotCacheApplication in 3.446 seconds) log: [warning][aot] Unable to use AOT cache. log: [error ][aot] An error has occurred while processing the AOT cache. Run with -Xlog:aot for details. log: [error ][aot] Loading static archive failed. log: [error ][aot] Unable to map shared spaces == a different collector at run time: -XX:+UseSerialGC result: started, ready after 1916 ms (Started AotCacheApplication in 1.516 seconds) log: (nothing at warning or error level) == a different collector at run time: -XX:+UseParallelGC result: started, ready after 1957 ms (Started AotCacheApplication in 1.473 seconds) log: (nothing at warning or error level) == a different collector at run time: -XX:+UseZGC result: started, ready after 3981 ms (Started AotCacheApplication in 3.347 seconds) log: [warning][aot] Unable to use AOT cache. [ ] The saved state of UseCompressedOops and UseCompressedClassPointers is different from runtime, CDS will be disabled. log: [error ][aot] An error has occurred while processing the AOT cache. Run with -Xlog:aot for details. log: [error ][aot] Loading static archive failed. log: [error ][aot] Unable to map shared spaces == a different heap size at run time: -Xmx256m result: started, ready after 2058 ms (Started AotCacheApplication in 1.602 seconds) log: (nothing at warning or error level) == a cache file that does not exist result: started, ready after 4113 ms (Started AotCacheApplication in 3.451 seconds) log: [error][aot] An error has occurred while processing the AOT cache. Run with -Xlog:aot for details. log: [error][aot] Loading static archive failed. log: [error][aot] Unable to map shared spaces == a cache file that does not exist, with -XX:AOTMode=on result: did not start (exit code 1) log: [error][aot] An error has occurred while processing the AOT cache. Run with -Xlog:aot for details. log: [error][aot] Loading static archive failed. log: [error][aot] Unable to map shared spaces # and on JDK 27, whose cache was trained under the default collector (G1): == JDK 27, cache from JDK 27 (control) result: started, ready after 1955 ms (Started AotCacheApplication in 1.547 seconds) log: (nothing at warning or error level) == JDK 27, -XX:+UseZGC at run time result: started, ready after 4158 ms (Started AotCacheApplication in 3.502 seconds) log: [warning][aot] Unable to use AOT cache. [ ] The saved state of UseCompressedOops (1) is different from runtime (0), CDS will be disabled. log: [error ][aot] An error has occurred while processing the AOT cache. Run with -Xlog:aot for details. log: [error ][aot] Loading static archive failed. log: [error ][aot] Unable to map shared spaces == JDK 27, -XX:+UseSerialGC at run time result: started, ready after 2103 ms (Started AotCacheApplication in 1.672 seconds) log: (nothing at warning or error level) == JDK 27, -XX:-UseCompactObjectHeaders at run time result: started, ready after 3906 ms (Started AotCacheApplication in 3.163 seconds) log: [warning][aot] Unable to use AOT cache. log: [error ][aot] An error has occurred while processing the AOT cache. Run with -Xlog:aot for details. log: [error ][aot] Loading static archive failed. log: [warning][aot] Unable to use AOT cache. log: [error ][aot] Loading static archive failed. # why ZGC is different: ask the JVM (-Xlog:aot=info) why it refused the G1-trained cache == JDK 27, -XX:+UseZGC with the G1-trained cache, -Xlog:aot=info result: started, ready after 3885 ms (Started AotCacheApplication in 3.258 seconds) log: [info][aot] The AOT cache was created with UseCompressedOops = 1, UseCompactObjectHeaders = 1 log: [warning][aot] Unable to use AOT cache. [ ] The saved state of UseCompressedOops (1) is different from runtime (0), CDS will be disabled. log: [error ][aot] An error has occurred while processing the AOT cache. Run with -Xlog:aot for details. log: [error ][aot] Loading static archive failed. == JDK 27, cache trained under ZGC, run under ZGC result: started, ready after 1988 ms (Started AotCacheApplication in 1.554 seconds) log: (nothing at warning or error level) == JDK 27, cache trained under ZGC, run under G1 (compressed oops on again) result: started, ready after 3869 ms (Started AotCacheApplication in 3.199 seconds) log: [warning][aot] Unable to use AOT cache. [ ] The saved state of UseCompressedOops (0) is different from runtime (1), CDS will be disabled. log: [error ][aot] An error has occurred while processing the AOT cache. Run with -Xlog:aot for details. log: [error ][aot] Loading static archive failed. log: [warning][aot] Unable to use AOT cache. == JDK 27, cache trained under ZGC, run under G1 with -XX:-UseCompressedOops result: started, ready after 2018 ms (Started AotCacheApplication in 1.534 seconds) log: (nothing at warning or error level)