On Tue, 4 Oct 2022 08:00:21 GMT, Matthias Baesken <mbaes...@openjdk.org> wrote:
>> We noticed that with certain jar file input, jdeps runs into the following >> exception, this happens with jdk11, 17 and 20. >> >> jdeps.exe --multi-release 11 --module-path . --inverse --package >> com.sap.nw.performance.supa.client test.jar >> >> Inverse transitive dependences matching packages >> [com.sap.nw.performance.supa.client] >> Exception in thread "main" java.util.NoSuchElementException: No value present >> at java.base/java.util.Optional.get(Optional.java:148) >> at >> jdk.jdeps/com.sun.tools.jdeps.InverseDepsAnalyzer.lambda$inverseDependences$2(InverseDepsAnalyzer.java:150) >> at >> java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) >> at >> java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195) >> at >> java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195) >> at java.base/java.util.Iterator.forEachRemaining(Iterator.java:133) >> at >> java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801) >> at >> java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484) >> at >> java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474) >> >> So an additional check might be a good idea. > > Matthias Baesken has updated the pull request incrementally with one > additional commit since the last revision: > > enhance test test/langtools/tools/jdeps/optionalDependency/OptionalDependencyTest.java line 74: > 72: @Test > 73: public void optionalDependenceNotResolved() { > 74: JdepsRunner jdepsRunner = new JdepsRunner("--module-path", > "m2.jar:m3.jar", Just a heads-up that this test is failing in our CI because this needs to use File.pathSeparator rather than ":". Here's the exception: test OptionalDependencyTest.optionalDependenceNotResolved(): failure java.nio.file.InvalidPathException: Illegal char <:> at index 6: m2.jar:m3.jar at java.base/sun.nio.fs.WindowsPathParser.normalize(WindowsPathParser.java:182) at java.base/sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:153) at java.base/sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:77) at java.base/sun.nio.fs.WindowsPath.parse(WindowsPath.java:92) at java.base/sun.nio.fs.WindowsFileSystem.getPath(WindowsFileSystem.java:232) at java.base/java.nio.file.Path.of(Path.java:147) at java.base/java.nio.file.Paths.get(Paths.java:69) at jdk.jdeps/com.sun.tools.jdeps.JdepsConfiguration$Builder.createModulePathFinder(JdepsConfiguration.java:582) at jdk.jdeps/com.sun.tools.jdeps.JdepsConfiguration$Builder.appModulePath(JdepsConfiguration.java:473) at jdk.jdeps/com.sun.tools.jdeps.JdepsTask.buildConfig(JdepsTask.java:584) at jdk.jdeps/com.sun.tools.jdeps.JdepsTask.run(JdepsTask.java:558) at jdk.jdeps/com.sun.tools.jdeps.JdepsTask.run(JdepsTask.java:534) at jdk.jdeps/com.sun.tools.jdeps.Main.run(Main.java:65) at jdk.jdeps/com.sun.tools.jdeps.Main$JDepsToolProvider.run(Main.java:78) at JdepsRunner.run(JdepsRunner.java:68) at OptionalDependencyTest.optionalDependenceNotResolved(OptionalDependencyTest.java:77) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) at java.base/java.lang.reflect.Method.invoke(Method.java:578) at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:132) at org.testng.internal.TestInvoker.invokeMethod(TestInvoker.java:599) at org.testng.internal.TestInvoker.invokeTestMethod(TestInvoker.java:174) at org.testng.internal.MethodRunner.runInSequence(MethodRunner.java:46) at org.testng.internal.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:822) at org.testng.internal.TestInvoker.invokeTestMethods(TestInvoker.java:147) at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:146) at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:128) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) at org.testng.TestRunner.privateRun(TestRunner.java:764) at org.testng.TestRunner.run(TestRunner.java:585) at org.testng.SuiteRunner.runTest(SuiteRunner.java:384) at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:378) at org.testng.SuiteRunner.privateRun(SuiteRunner.java:337) at org.testng.SuiteRunner.run(SuiteRunner.java:286) at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:53) at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:96) at org.testng.TestNG.runSuitesSequentially(TestNG.java:1218) at org.testng.TestNG.runSuitesLocally(TestNG.java:1140) at org.testng.TestNG.runSuites(TestNG.java:1069) at org.testng.TestNG.run(TestNG.java:1037) at com.sun.javatest.regtest.agent.TestNGRunner.main(TestNGRunner.java:93) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) at java.base/java.lang.reflect.Method.invoke(Method.java:578) at com.sun.javatest.regtest.agent.MainActionHelper$AgentVMRunnable.run(MainActionHelper.java:312) at java.base/java.lang.Thread.run(Thread.java:1588) ------------- PR: https://git.openjdk.org/jdk/pull/10300