Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8284313

Improve warning messages when CDS archive fails to load

XMLWordPrintable

    • Icon: Enhancement Enhancement
    • Resolution: Fixed
    • Icon: P4 P4
    • 20
    • 19
    • hotspot
    • b11

      When a CDS archive fails to load, we should print more helpful messages so that the user can diagnose the error more easily. This should be done for both static and dynamic archives.

      ===========================================
      ~/tmp/8279366/copied$ java -cp HelloWorld.jar --show-version -XX:SharedArchiveFile=HelloWorld.jsa HelloWorld
      [0.028s][warning][cds,dynamic] Unable to use shared archive. The top archive failed to load: HelloWorld.jsa
      java 17 2021-09-14 LTS
      Java(TM) SE Runtime Environment (build 17+35-LTS-2724)
      Java HotSpot(TM) 64-Bit Server VM (build 17+35-LTS-2724, mixed mode, sharing)
      Hello World

      In the above message, we should also print something like:

      Hint: enable -Xlog:class+path=info to diagnose the failure

      ===========================================
      ~/tmp/8279366/copied$ java -Xlog:class+path -cp HelloWorld.jar --show-version -XX:SharedArchiveFile=HelloWorld.jsa HelloWorld
      [0.002s][info][class,path] bootstrap loader class path=/jdk/official/jdk17/lib/modules
      [0.032s][info][class,path] Expecting BOOT path=/jdk/official/jdk17/lib/modules
      [0.032s][info][class,path] Expecting -Djava.class.path=
      [0.032s][info][class,path] checking shared classpath entry: /jdk/official/jdk17/lib/modules
      [0.032s][info][class,path] ok
      [0.032s][info][class,path] Expecting BOOT path=/jdk/official/jdk17/lib/modules
      [0.032s][info][class,path] Expecting -Djava.class.path=HelloWorld.jar
      [0.032s][info][class,path] checking shared classpath entry: /jdk/official/jdk17/lib/modules
      [0.032s][info][class,path] ok
      [0.032s][info][class,path] checking shared classpath entry: HelloWorld.jar
      [0.032s][warning][cds,dynamic] Unable to use shared archive. The top archive failed to load: HelloWorld.jsa
      java 17 2021-09-14 LTS
      Java(TM) SE Runtime Environment (build 17+35-LTS-2724)
      Java HotSpot(TM) 64-Bit Server VM (build 17+35-LTS-2724, mixed mode, sharing)
      Hello World

      In the above message, we should also print something like:

      HelloWorld.jar timestamp has changed

            ccheung Calvin Cheung
            iklam Ioi Lam
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: