microsoft / microsoft/java-debug

Discovering main class does not work with arguments

Offen
#487 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

ai-triaged bug
Vorherrschende Sprache
Java
Sterne
409
Forks
204
Ø Merge
1 T. 13 Std.
Gemergte PRs (30 T.)
4

Beschreibung

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"  }}

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginnen Sie bei JDTDelegateCommandHandler.java:94 und verfolgen Sie den vscode.java.resolveMainClass-Pfad bis zu ResolveMainClassHandler. Reproduzieren Sie die workspace/executeCommand-Anforderung mit dem URI der einzelnen Datei. Überprüfen Sie anschließend, dass das Argument ohne den String-to-ArrayList cast failure verarbeitet wird und dass die Ergebnisse der Main-Klasse auf das relevante Projekt eingegrenzt werden.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
java
Bereich
devtools
Issue-Typ
Bug
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.