RFR: 8325207: Support out of order classpath in AppCDS.

Andrey Turbanov aturbanov at openjdk.org
Fri Apr 26 11:23:09 UTC 2024


On Mon, 5 Feb 2024 07:29:17 GMT, lingjun-cg <duke at openjdk.org> wrote:

> When a Java application runs with a wildcard classpath like this:
> `java -cp "lib/*"`
> JVM will expand "lib/*" to the actual jar list, but the order of the jar list may be different on different hosts, which depends on the underlying filesystem.
> 
> Dumping the AppCDS archive is usually done on a CI/CD environment, but using the shared archive is done on a production environment.
> If there are many jars with a complex build procedure,  ensure the same orders are difficult.
> 
> The patch first sorts the runtime classpath and dump classpath, then checks path again.

test/hotspot/jtreg/runtime/cds/appcds/OutOfOrderClasspathTest.java line 49:

> 47:         String outputDir = CDSTestUtils.getOutputDir();
> 48:         System.setProperty("test.noclasspath", "true");
> 49:         String hiJar =  outputDir + File.separator + "hi.jar";

Suggestion:

        String hiJar = outputDir + File.separator + "hi.jar";

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/17704#discussion_r1489140711


More information about the hotspot-runtime-dev mailing list