eclipse-jdt / eclipse-jdt/eclipse.jdt.debug

ClassNotFoundException: SequencedMap

Open
#385 4 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
Java
Stars
23
Forks
68
Avg merge
1d 4h
Merged PRs (30d)
13

Description

When having both JDK 17 and JDK 21 configured in the IDE (and jdk 21 as default JRE) and launching a test case for a BREEE 17 project (Run As..), then it it fails
![image](https://github.com/eclipse-jdt/eclipse.jdt.debug/assets/51790620/8b32dddf-005a-4ce9-b9db-2f067f60910e)
![image](https://github.com/eclipse-jdt/eclipse.jdt.debug/assets/51790620/83a064b0-3afc-4786-9257-d6f060f97713)
```
WARNING: Using incubator modules: jdk.incubator.foreign, jdk.incubator.vector
java.lang.NoClassDefFoundError: java/util/SequencedMap
at org.apache.felix.resolver.Candidates.(Candidates.java:96)
at org.apache.felix.resolver.ResolverImpl.getInitialCandidates(ResolverImpl.java:541)
at org.apache.felix.resolver.ResolverImpl.doResolve(ResolverImpl.java:431)
at org.apache.felix.resolver.ResolverImpl.resolve(ResolverImpl.java:420)
at org.apache.felix.resolver.ResolverImpl.resolve(ResolverImpl.java:374)
at org.eclipse.osgi.container.ModuleResolver$ResolveProcess.resolveRevisions(ModuleResolver.java:1084)
at org.eclipse.osgi.container.ModuleResolver$ResolveProcess.resolveRevisionsInBatch(ModuleResolver.java:1035)
at org.eclipse.osgi.container.ModuleResolver$ResolveProcess.resolve(ModuleResolver.java:951)
at org.eclipse.osgi.container.ModuleResolver.resolveDelta(ModuleResolver.java:181)
at org.eclipse.osgi.container.ModuleContainer.resolveAndApply(ModuleContainer.java:714)
at org.eclipse.osgi.container.ModuleContainer.resolve(ModuleContainer.java:660)
at org.eclipse.osgi.container.ModuleContainer.resolve(ModuleContainer.java:648)
at org.eclipse.osgi.storage.Storage.checkSystemBundle(Storage.java:431)
at org.eclipse.osgi.storage.Storage.createStorage(Storage.java:189)
at org.eclipse.osgi.internal.framework.EquinoxContainer.(EquinoxContainer.java:108)
at org.eclipse.osgi.launch.Equinox.(Equinox.java:53)
at org.eclipse.osgi.launch.Equinox.(Equinox.java:46)
at org.eclipse.core.runtime.adaptor.EclipseStarter.startup(EclipseStarter.java:342)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:267)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:651)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:588)
at org.eclipse.equinox.launcher.Main.run(Main.java:1459)
at org.eclipse.equinox.launcher.Main.main(Main.java:1432)
Caused by: java.lang.ClassNotFoundException: java.util.SequencedMap
at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:445)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:592)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525)
... 27 more
An error has occurred. See the log file
null.
```
I understand it is compiled against JDK 21, but executed with JDK 17 by default
![image](https://github.com/eclipse-jdt/eclipse.jdt.debug/assets/51790620/8bdd4f3a-f25b-4cc4-b885-16dc89c13415)

workaround: open the Launch configuration "Main" tab -> JDK 21 is automaically(!) selected:
![image](https://github.com/eclipse-jdt/eclipse.jdt.debug/assets/51790620/b410a245-b3b2-4b0c-bf7d-08d154d7aa10)

There after "run" launches with 21 and test runs fine.

To my understanding the launchconfiguration should use JDK 21 even without using the configuration dialog

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.