Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

Java-Debug is not always conforming the Debugger Adapter Protocol

Offen
#444 5 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

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

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

ai-triaged bug help wanted
  • Commands that have arguments set to null throw 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 to null as the Thread Request does not set any restrictions. See here.

  • The response to threads request does not always contain the threads key.
    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) :: None
    

    See 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 the java/classFileContents LSP request. Java-Debug should instead set the sourceReference value > 0 and the contents of the source must be retrieved through the source request (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

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus microsoft/java-debug

Alle Issues in microsoft/java-debug

Ähnliche Issues

Weitere Issues zu Java

Neue Issues direkt in Ihr Postfach

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