Java-Debug is not always conforming the Debugger Adapter Protocol
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 35/100
Rechercherichtung
Beginne mit dem Protokollpfad durch JsonUtils.java, AbstractProtocolServer.java und ProtocolServer.java und reproduziere anschließend Anfragen mit Nullargumenten sowie wiederholte threads-Anfragen. Prüfe die DAP-threads-Antwort und die Quellcodebehandlung für Klassen, die mit jdt://-URIs zurückgegeben werden. Fertig ist die Arbeit, wenn Nullargumente keine Exceptions mehr auslösen, threads-Antworten Threads enthalten und Nicht-Projekt-Klassen sourceReference mit der source-Anfrage verwenden.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
-
Commands that have
argumentsset tonullthrow an exception:jdtls: 08.03.2021, 23:12:44 Error parsing message: com.google.gson.JsonSyntaxException: Expected a com.google.gson.JsonObject but was com.google.gson.JsonNull Expected a com.google.gson.JsonObject but was com.google.gson.JsonNull com.google.gson.JsonSyntaxException: Expected a com.google.gson.JsonObject but was com.google.gson.JsonNull at com.google.gson.internal.bind.TypeAdapters$35$1.read(TypeAdapters.java:897) at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:131) at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:222) at com.google.gson.Gson.fromJson(Gson.java:932) at com.google.gson.Gson.fromJson(Gson.java:897) at com.google.gson.Gson.fromJson(Gson.java:846) at com.google.gson.Gson.fromJson(Gson.java:817) at com.microsoft.java.debug.core.protocol.JsonUtils.fromJson(JsonUtils.java:26) at com.microsoft.java.debug.core.protocol.AbstractProtocolServer.processData(AbstractProtocolServer.java:219) at com.microsoft.java.debug.core.protocol.AbstractProtocolServer.run(AbstractProtocolServer.java:98) at com.microsoft.java.debug.core.adapter.ProtocolServer.run(ProtocolServer.java:61) at com.microsoft.java.debug.plugin.internal.JavaDebugServer$2.run(JavaDebugServer.java:136) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) at java.base/java.lang.Thread.run(Thread.java:832)However, commands that do not need arguments, e.g. (
configurationDone,threads) should be able to set arguments tonullas the Thread Request does not set any restrictions. See here. -
The response to
threadsrequest does not always contain thethreadskey.
Protocol:⟸ request/threads(8) :: {} ⟸ request/threads(9) :: {} ⟸ request/threads(10) :: {} ⟸ request/threads(11) :: {} ⟸ request/threads(12) :: {} ⟸ request/threads(13) :: {} ⟹ response/threads(8) :: None ⟹ response/threads(9) :: None ⟹ response/threads(10) :: None ⟹ response/threads(11) :: None ⟹ response/threads(12) :: None ⟹ response/threads(13) :: NoneSee here.
-
When stepping into classes that are not represented by a project file, Java-Debug returns a path with URI scheme
jdt://which then can be used to retrieve the class content using thejava/classFileContentsLSP request. Java-Debug should instead set the sourceReference value > 0 and the contents of the source must be retrieved through thesourcerequest (See https://github.com/microsoft/java-debug/issues/259#issuecomment-695097967).
This requires a special workaround in https://github.com/daveleroy/sublime_debugger/pull/106.
- Vorherrschende Sprache
- Java
- Sterne
- 409
- Forks
- 204
- Ø Merge
- 1 T. 13 Std.
- Gemergte PRs (30 T.)
- 4
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus microsoft/java-debug
-
ai-triaged bug
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 35/100
microsoft/java-debug#611 · 2 Kommentare ·
-
ai-triaged enhancement
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 35/100
microsoft/java-debug#608 · 3 Kommentare ·
-
ai-triaged question
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 30/100
microsoft/java-debug#597 · 1 Kommentar ·
-
ai-triaged bug
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 25/100
microsoft/java-debug#588 · 1 Kommentar ·
-
ai-triaged question
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 35/100
microsoft/java-debug#582 · 1 Kommentar ·
Alle Issues in microsoft/java-debug
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 65/100
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
elastic/gradle-plugins#157 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
cryptomator/hub#497 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
johanhaleby/occurrent#1120 ·