RFR: JDK-8293701: jdeps InverseDepsAnalyzer runs into NoSuchElementException: No value present [v4]
Alan Bateman
alanb at openjdk.org
Wed Oct 5 08:36:28 UTC 2022
On Tue, 4 Oct 2022 08:00:21 GMT, Matthias Baesken <mbaesken at 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
More information about the core-libs-dev
mailing list