microsoft / microsoft/java-debug
Discovering main class does not work with arguments
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Java
- Estrellas
- 409
- Forks
- 204
- Merge medio
- 1 d 13 h
- PR fusionados (30 d)
- 4
Descripción
Hi i am attempting to call the vscode.java.resolveMainClass with a single argument (the arguments param being array with one entry, the uri) being the uri to a file which is part of a project to which jdtls has been attached to with the java-debug extension enabled. If i try to do that, i get empty response, no errors seemingly. If i pass no uri, just call the command to resolve the main classes it returns fine, the issue here is that i have single jdtls instance which has multiple workspaces / projects attached to it, and so i would like to use the argument to narrow down the result to only the current workspace / context by passing the uri. According to the implementation, it is supposed to handle file uris passed as the first and only argument to this method to use it to resolve the result in ResolveMainClassHandler
[ERROR][2023-05-22 16:04:05] ...lsp/handlers.lua:535 "May 22, 2023, 4:04:05 PM Error in calling delegate command handler\nclass java.lang.String cannot be cast to class java.util.ArrayList (java.lang.String and java.util.ArrayList are in module java.base of loader 'bootstrap')\njava.lang.ClassCastException: class java.lang.String cannot be cast to class java.util.ArrayList (java.lang.String and java.util.ArrayList are in module java.base of loader 'bootstrap')\n\tat org.eclipse.jdt.ls.core.internal.JDTDelegateCommandHandler.executeCommand(JDTDelegateCommandHandler.java:94)\n\tat org.eclipse.jdt.ls.core.internal.handlers.WorkspaceExecuteCommandHandler$1.run(WorkspaceExecuteCommandHandler.java:230)\n\tat org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)\n\tat org.eclipse.jdt.ls.core.internal.handlers.WorkspaceExecuteCommandHandler.executeCommand(WorkspaceExecuteCommandHandler.java:220)\n\tat org.eclipse.jdt.ls.core.internal.handlers.JDTLanguageServer.lambda$4(JDTLanguageServer.java:585)\n\tat org.eclipse.jdt.ls.core.internal.BaseJDTLanguageServer.lambda$0(BaseJDTLanguageServer.java:87)\n\tat java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:646)\n\tat java.base/java.util.concurrent.CompletableFuture$Completion.exec(CompletableFuture.java:483)\n\tat java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:387)\n\tat java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1312)\n\tat java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1843)\n\tat java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1808)\n\tat java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:188)\n"
Here is what is being sent
[DEBUG][2023-05-22 16:13:01] .../vim/lsp/rpc.lua:284 "rpc.send" { id = 6, jsonrpc = "2.0", method = "workspace/executeCommand", params = { arguments = { "file:///home/asmodeus/.projects/javahehe/src/main/java/com/mycompany/app/App17.java" }, command = "vscode.java.resolveMainClass" }}
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Comienza en JDTDelegateCommandHandler.java:94 y sigue la ruta vscode.java.resolveMainClass hasta ResolveMainClassHandler. Reproduce la solicitud workspace/executeCommand con el URI del único archivo y verifica que el argumento se gestione sin el String-to-ArrayList cast failure y que los resultados de la clase principal se restrinjan al proyecto relevante.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- java
- Área
- devtools
- Tipo de issue
- Error
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 35/100