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

jdeps --print-module-deps fails with --multi-release

    XMLWordPrintable

Details

    • generic
    • generic

    Description

      ADDITIONAL SYSTEM INFORMATION :
      Linux 5.15.2-arch1-1 #1 SMP PREEMPT Fri, 12 Nov 2021 19:22:10 +0000 x86_64 GNU/Linux

      openjdk version "17" 2021-09-14
      OpenJDK Runtime Environment Temurin-17+35 (build 17+35)
      OpenJDK 64-Bit Server VM Temurin-17+35 (build 17+35, mixed mode, sharing)


      A DESCRIPTION OF THE PROBLEM :
      Using jdeps to generate a list of modules from a jar fails when --multi-release 17 is given with a java.util.concurrent.ExecutionException

      -----
      Exception in thread "main" java.lang.Error: java.util.concurrent.ExecutionException: com.sun.tools.jdeps.MultiReleaseException
      at jdk.jdeps/com.sun.tools.jdeps.DependencyFinder.waitForTasksCompleted(DependencyFinder.java:271)
      at jdk.jdeps/com.sun.tools.jdeps.DependencyFinder.parse(DependencyFinder.java:133)
      at jdk.jdeps/com.sun.tools.jdeps.DepsAnalyzer.transitiveArchiveDeps(DepsAnalyzer.java:217)
      at jdk.jdeps/com.sun.tools.jdeps.DepsAnalyzer.run(DepsAnalyzer.java:138)
      at jdk.jdeps/com.sun.tools.jdeps.ModuleExportsAnalyzer.run(ModuleExportsAnalyzer.java:74)
      at jdk.jdeps/com.sun.tools.jdeps.JdepsTask$ListModuleDeps.run(JdepsTask.java:1047)
      at jdk.jdeps/com.sun.tools.jdeps.JdepsTask.run(JdepsTask.java:574)
      at jdk.jdeps/com.sun.tools.jdeps.JdepsTask.run(JdepsTask.java:533)
      at jdk.jdeps/com.sun.tools.jdeps.Main.main(Main.java:49)
      Caused by: java.util.concurrent.ExecutionException: com.sun.tools.jdeps.MultiReleaseException
      at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122)
      at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:191)
      at jdk.jdeps/com.sun.tools.jdeps.DependencyFinder.waitForTasksCompleted(DependencyFinder.java:267)
      ... 8 more
      Caused by: com.sun.tools.jdeps.MultiReleaseException
      at jdk.jdeps/com.sun.tools.jdeps.VersionHelper.add(VersionHelper.java:62)
      at jdk.jdeps/com.sun.tools.jdeps.ClassFileReader$JarFileReader.readClassFile(ClassFileReader.java:360)
      at jdk.jdeps/com.sun.tools.jdeps.ClassFileReader$JarFileIterator.hasNext(ClassFileReader.java:402)
      at jdk.jdeps/com.sun.tools.jdeps.DependencyFinder.lambda$parse$5(DependencyFinder.java:179)
      at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
      at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
      at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
      at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
      at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
      at java.base/java.lang.Thread.run(Thread.java:833)


      STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
      Run jdeps with --multi-release 17 on a shaded spring boot jar and the --print-module-deps flag.

      The executed command (for us)
      jdeps --multi-release 17 -R -cp './target/BOOT-INF/lib/*' --print-module-deps target/s-helloworld-v1-1.0.0-SNAPSHOT.jar

      EXPECTED VERSUS ACTUAL BEHAVIOR :
      EXPECTED -
      A printed list of dependencies separated by commas to use with jlink --add-modules
      ACTUAL -
      Exception in thread "main" java.lang.Error: java.util.concurrent.ExecutionException: com.sun.tools.jdeps.MultiReleaseException
      at jdk.jdeps/com.sun.tools.jdeps.DependencyFinder.waitForTasksCompleted(DependencyFinder.java:271)
      at jdk.jdeps/com.sun.tools.jdeps.DependencyFinder.parse(DependencyFinder.java:133)
      at jdk.jdeps/com.sun.tools.jdeps.DepsAnalyzer.transitiveArchiveDeps(DepsAnalyzer.java:217)
      at jdk.jdeps/com.sun.tools.jdeps.DepsAnalyzer.run(DepsAnalyzer.java:138)
      at jdk.jdeps/com.sun.tools.jdeps.ModuleExportsAnalyzer.run(ModuleExportsAnalyzer.java:74)
      at jdk.jdeps/com.sun.tools.jdeps.JdepsTask$ListModuleDeps.run(JdepsTask.java:1047)
      at jdk.jdeps/com.sun.tools.jdeps.JdepsTask.run(JdepsTask.java:574)
      at jdk.jdeps/com.sun.tools.jdeps.JdepsTask.run(JdepsTask.java:533)
      at jdk.jdeps/com.sun.tools.jdeps.Main.main(Main.java:49)
      Caused by: java.util.concurrent.ExecutionException: com.sun.tools.jdeps.MultiReleaseException
      at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122)
      at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:191)
      at jdk.jdeps/com.sun.tools.jdeps.DependencyFinder.waitForTasksCompleted(DependencyFinder.java:267)
      ... 8 more
      Caused by: com.sun.tools.jdeps.MultiReleaseException
      at jdk.jdeps/com.sun.tools.jdeps.VersionHelper.add(VersionHelper.java:62)
      at jdk.jdeps/com.sun.tools.jdeps.ClassFileReader$JarFileReader.readClassFile(ClassFileReader.java:360)
      at jdk.jdeps/com.sun.tools.jdeps.ClassFileReader$JarFileIterator.hasNext(ClassFileReader.java:402)
      at jdk.jdeps/com.sun.tools.jdeps.DependencyFinder.lambda$parse$5(DependencyFinder.java:179)
      at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
      at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
      at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
      at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
      at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
      at java.base/java.lang.Thread.run(Thread.java:833)


      ---------- BEGIN SOURCE ----------
      I can attach the target/ directory on request.
      ---------- END SOURCE ----------

      FREQUENCY : always


      Attachments

        Issue Links

          Activity

            People

              mchung Mandy Chung
              webbuggrp Webbug Group
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: