redhat-developer / redhat-developer/vscode-java
[Performance] - Can not find Implementations for interface
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 2.3k
- Forks
- 546
- Avg merge
- 20h 1m
- Merged PRs (30d)
- 11
Description
When peek implementations is selected it can not return the query from jdtls.
Environment
- Operating System: Windows 11
- JDK version: 21
- Visual Studio Code version: 1.94.2
- Java extension version: 1.35.1
Steps To Reproduce
- Clone https://github.com/apache/camel
- Wait for project to be imported
- Go to org.apache.camel.Expression interface
- Right click on Expression interface > Peek > Peek Implementations
After executed action(peek implementations) the inline window will never be shown and blue line at top indicating progess will spin. Actually this will make the backend/server unresponsive, at least in my usecase with 4G allocated to JVM.
It should return all places where this interface is implemented.
Also I encountered this error while navigating this project, not sure if it is related to the issue above.
Logs
[Error - 4:02:35 PM] Oct 23, 2024, 4:02:35 PM Problems occurred when invoking code from plug-in: "org.eclipse.jdt.ls.core".
Referenced classpath provider does not exist: org.eclipse.m2e.launchconfig.classpathProvider
org.eclipse.core.runtime.CoreException: Referenced classpath provider does not exist: org.eclipse.m2e.launchconfig.classpathProvider
at org.eclipse.jdt.launching.JavaRuntime.abort(JavaRuntime.java:1870)
at org.eclipse.jdt.launching.JavaRuntime.abort(JavaRuntime.java:1855)
at org.eclipse.jdt.launching.JavaRuntime.getClasspathProvider(JavaRuntime.java:1181)
at org.eclipse.jdt.launching.JavaRuntime.computeUnresolvedRuntimeClasspath(JavaRuntime.java:1659)
at org.eclipse.jdt.launching.AbstractJavaLaunchConfigurationDelegate.getClasspathAndModulepath(AbstractJavaLaunchConfigurationDelegate.java:463)
at org.eclipse.jdt.ls.core.internal.commands.ProjectCommand.lambda$8(ProjectCommand.java:435)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2457)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2482)
at org.eclipse.jdt.ls.core.internal.commands.ProjectCommand.getClasspathsFromJavaProject(ProjectCommand.java:434)
at org.eclipse.jdt.ls.core.internal.commands.ProjectCommand.getClasspaths(ProjectCommand.java:414)
at org.eclipse.jdt.ls.core.internal.JDTDelegateCommandHandler.executeCommand(JDTDelegateCommandHandler.java:101)
at org.eclipse.jdt.ls.core.internal.handlers.WorkspaceExecuteCommandHandler$1.run(WorkspaceExecuteCommandHandler.java:230)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:47)
at org.eclipse.jdt.ls.core.internal.handlers.WorkspaceExecuteCommandHandler.executeCommand(WorkspaceExecuteCommandHandler.java:220)
at org.eclipse.jdt.ls.core.internal.handlers.JDTLanguageServer.lambda$4(JDTLanguageServer.java:606)
at org.eclipse.jdt.ls.core.internal.BaseJDTLanguageServer.lambda$0(BaseJDTLanguageServer.java:87)
at java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(Unknown Source)
at java.base/java.util.concurrent.CompletableFuture$Completion.exec(Unknown Source)
at java.base/java.util.concurrent.ForkJoinTask.doExec(Unknown Source)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(Unknown Source)
at java.base/java.util.concurrent.ForkJoinPool.scan(Unknown Source)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(Unknown Source)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source)
[Error - 4:02:35 PM] Oct 23, 2024, 4:02:35 PM Problems occurred when invoking code from plug-in: "org.eclipse.jdt.ls.core".
Referenced classpath provider does not exist: org.eclipse.m2e.launchconfig.classpathProvider
org.eclipse.core.runtime.CoreException: Referenced classpath provider does not exist: org.eclipse.m2e.launchconfig.classpathProvider
at org.eclipse.jdt.launching.JavaRuntime.abort(JavaRuntime.java:1870)
at org.eclipse.jdt.launching.JavaRuntime.abort(JavaRuntime.java:1855)
at org.eclipse.jdt.launching.JavaRuntime.getClasspathProvider(JavaRuntime.java:1181)
at org.eclipse.jdt.launching.JavaRuntime.computeUnresolvedRuntimeClasspath(JavaRuntime.java:1659)
at org.eclipse.jdt.launching.AbstractJavaLaunchConfigurationDelegate.getClasspathAndModulepath(AbstractJavaLaunchConfigurationDelegate.java:463)
at org.eclipse.jdt.ls.core.internal.commands.ProjectCommand.lambda$8(ProjectCommand.java:435)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2457)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2482)
at org.eclipse.jdt.ls.core.internal.commands.ProjectCommand.getClasspathsFromJavaProject(ProjectCommand.java:434)
at org.eclipse.jdt.ls.core.internal.commands.ProjectCommand.getClasspaths(ProjectCommand.java:414)
at org.eclipse.jdt.ls.core.internal.JDTDelegateCommandHandler.executeCommand(JDTDelegateCommandHandler.java:101)
at org.eclipse.jdt.ls.core.internal.handlers.WorkspaceExecuteCommandHandler$1.run(WorkspaceExecuteCommandHandler.java:230)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:47)
at org.eclipse.jdt.ls.core.internal.handlers.WorkspaceExecuteCommandHandler.executeCommand(WorkspaceExecuteCommandHandler.java:220)
at org.eclipse.jdt.ls.core.internal.handlers.JDTLanguageServer.lambda$4(JDTLanguageServer.java:606)
at org.eclipse.jdt.ls.core.internal.BaseJDTLanguageServer.lambda$0(BaseJDTLanguageServer.java:87)
at java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(Unknown Source)
at java.base/java.util.concurrent.CompletableFuture$Completion.exec(Unknown Source)
at java.base/java.util.concurrent.ForkJoinTask.doExec(Unknown Source)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(Unknown Source)
at java.base/java.util.concurrent.ForkJoinPool.scan(Unknown Source)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(Unknown Source)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source)
[Error - 4:02:35 PM] Oct 23, 2024, 4:02:35 PM Error in calling delegate command handler
Referenced classpath provider does not exist: org.eclipse.m2e.launchconfig.classpathProvider
org.eclipse.core.runtime.CoreException: Referenced classpath provider does not exist: org.eclipse.m2e.launchconfig.classpathProvider
at org.eclipse.jdt.launching.JavaRuntime.abort(JavaRuntime.java:1870)
at org.eclipse.jdt.launching.JavaRuntime.abort(JavaRuntime.java:1855)
at org.eclipse.jdt.launching.JavaRuntime.getClasspathProvider(JavaRuntime.java:1181)
at org.eclipse.jdt.launching.JavaRuntime.computeUnresolvedRuntimeClasspath(JavaRuntime.java:1659)
at org.eclipse.jdt.launching.AbstractJavaLaunchConfigurationDelegate.getClasspathAndModulepath(AbstractJavaLaunchConfigurationDelegate.java:463)
at org.eclipse.jdt.ls.core.internal.commands.ProjectCommand.lambda$8(ProjectCommand.java:435)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2457)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2482)
at org.eclipse.jdt.ls.core.internal.commands.ProjectCommand.getClasspathsFromJavaProject(ProjectCommand.java:434)
at org.eclipse.jdt.ls.core.internal.commands.ProjectCommand.getClasspaths(ProjectCommand.java:414)
at org.eclipse.jdt.ls.core.internal.JDTDelegateCommandHandler.executeCommand(JDTDelegateCommandHandler.java:101)
at org.eclipse.jdt.ls.core.internal.handlers.WorkspaceExecuteCommandHandler$1.run(WorkspaceExecuteCommandHandler.java:230)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:47)
at org.eclipse.jdt.ls.core.internal.handlers.WorkspaceExecuteCommandHandler.executeCommand(WorkspaceExecuteCommandHandler.java:220)
at org.eclipse.jdt.ls.core.internal.handlers.JDTLanguageServer.lambda$4(JDTLanguageServer.java:606)
at org.eclipse.jdt.ls.core.internal.BaseJDTLanguageServer.lambda$0(BaseJDTLanguageServer.java:87)
at java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(Unknown Source)
at java.base/java.util.concurrent.CompletableFuture$Completion.exec(Unknown Source)
at java.base/java.util.concurrent.ForkJoinTask.doExec(Unknown Source)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(Unknown Source)
at java.base/java.util.concurrent.ForkJoinPool.scan(Unknown Source)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(Unknown Source)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source)
[Error - 4:02:35 PM] Oct 23, 2024, 4:02:35 PM Error in calling delegate command handler
Referenced classpath provider does not exist: org.eclipse.m2e.launchconfig.classpathProvider
org.eclipse.core.runtime.CoreException: Referenced classpath provider does not exist: org.eclipse.m2e.launchconfig.classpathProvider
at org.eclipse.jdt.launching.JavaRuntime.abort(JavaRuntime.java:1870)
at org.eclipse.jdt.launching.JavaRuntime.abort(JavaRuntime.java:1855)
at org.eclipse.jdt.launching.JavaRuntime.getClasspathProvider(JavaRuntime.java:1181)
at org.eclipse.jdt.launching.JavaRuntime.computeUnresolvedRuntimeClasspath(JavaRuntime.java:1659)
at org.eclipse.jdt.launching.AbstractJavaLaunchConfigurationDelegate.getClasspathAndModulepath(AbstractJavaLaunchConfigurationDelegate.java:463)
at org.eclipse.jdt.ls.core.internal.commands.ProjectCommand.lambda$8(ProjectCommand.java:435)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2457)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2482)
at org.eclipse.jdt.ls.core.internal.commands.ProjectCommand.getClasspathsFromJavaProject(ProjectCommand.java:434)
at org.eclipse.jdt.ls.core.internal.commands.ProjectCommand.getClasspaths(ProjectCommand.java:414)
at org.eclipse.jdt.ls.core.internal.JDTDelegateCommandHandler.executeCommand(JDTDelegateCommandHandler.java:101)
at org.eclipse.jdt.ls.core.internal.handlers.WorkspaceExecuteCommandHandler$1.run(WorkspaceExecuteCommandHandler.java:230)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:47)
at org.eclipse.jdt.ls.core.internal.handlers.WorkspaceExecuteCommandHandler.executeCommand(WorkspaceExecuteCommandHandler.java:220)
at org.eclipse.jdt.ls.core.internal.handlers.JDTLanguageServer.lambda$4(JDTLanguageServer.java:606)
at org.eclipse.jdt.ls.core.internal.BaseJDTLanguageServer.lambda$0(BaseJDTLanguageServer.java:87)
at java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(Unknown Source)
at java.base/java.util.concurrent.CompletableFuture$Completion.exec(Unknown Source)
at java.base/java.util.concurrent.ForkJoinTask.doExec(Unknown Source)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(Unknown Source)
at java.base/java.util.concurrent.ForkJoinPool.scan(Unknown Source)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(Unknown Source)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source)
Oct 23, 2024 4:02:36 PM com.microsoft.java.debug.plugin.internal.JavaDebuggerServerPlugin start
INFO: Starting com.microsoft.java.debug.plugin
Oct 23, 2024 4:03:11 PM org.eclipse.lsp4j.jsonrpc.RemoteEndpoint handleCancellation
WARNING: Unmatched cancel notification for request id 109
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce the issue with org.apache.camel.Expression in the Peek Implementations action and observe the JDT language-server command path named in the logs, including ProjectCommand and JDTDelegateCommandHandler. Trace why the request remains pending or makes the server unresponsive; done means the inline window returns all interface implementations without hanging.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java, typescript
- Domain
- developer-experience, tooling
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100