microsoft / microsoft/java-debug
Java-Debug is not always conforming the Debugger Adapter Protocol
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Java
- Sterne
- 409
- Forks
- 204
- Ø Merge
- 1 T. 13 Std.
- Gemergte PRs (30 T.)
- 4
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.
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
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.
Bewertung
- Tech-Stack
- java
- Bereich
- devtools
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100