redhat-developer / redhat-developer/vscode-java

Partial jdk classes cannot be resolved. It is indirectly reference from required ...

Offen
#3,365 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Vorherrschende Sprache
TypeScript
Sterne
2.3k
Forks
547
Ø Merge
20 Std. 1 Min.
Gemergte PRs (30 T.)
11

Beschreibung

  1. Open spring-petclinic project in VS Code and observe the compilation error below.
[{
	"resource": "/C:/Work/Code/spring-petclinic/src/test/java/org/springframework/samples/petclinic/PetClinicIntegrationTests.java",
	"owner": "_generated_diagnostic_collection_name_#4",
	"code": "16777563",
	"severity": 8,
	"message": "The type java.lang.Enum cannot be resolved. It is indirectly referenced from required type org.springframework.boot.test.context.SpringBootTest.WebEnvironment",
	"source": "Java",
	"startLineNumber": 1,
	"startColumn": 1,
	"endLineNumber": 1,
	"endColumn": 2
}]

image

  1. In the Java Projects view, Enum.class is also not resolved in the JRE tree view.

image

  1. Click Enum.class in the JRE tree view, Java extension reports error as below.
!ENTRY org.eclipse.jdt.ls.core 4 0 2023-10-26 16:12:15.657
!MESSAGE Enum.class [in java.lang [in <module:java.base>]] does not exist
!STACK 1
Java Model Exception: Error in Java Model (code 969): Enum.class [in java.lang [in <module:java.base>]] does not exist
	at org.eclipse.jdt.internal.core.JavaElement.newNotPresentException(JavaElement.java:550)
	at org.eclipse.jdt.internal.core.ClassFile.getBinaryTypeInfo(ClassFile.java:203)
	at org.eclipse.jdt.internal.core.ClassFile.buildStructure(ClassFile.java:92)
	at org.eclipse.jdt.internal.core.Openable.generateInfos(Openable.java:266)
	at org.eclipse.jdt.internal.core.JavaElement.openWhenClosed(JavaElement.java:573)
	at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:304)
	at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:290)
	at org.eclipse.jdt.internal.core.Openable.getBuffer(Openable.java:296)
	at org.eclipse.jdt.internal.core.AbstractClassFile.getBuffer(AbstractClassFile.java:245)
	at org.eclipse.jdt.internal.core.AbstractClassFile.getSourceRange(AbstractClassFile.java:371)
	at org.eclipse.jdt.ls.core.internal.JDTUtils.resolveTypeRoot(JDTUtils.java:452)
	at org.eclipse.jdt.ls.core.internal.handlers.FoldingRangeHandler.foldingRange(FoldingRangeHandler.java:66)
	at org.eclipse.jdt.ls.core.internal.handlers.JDTLanguageServer.lambda$30(JDTLanguageServer.java:1027)
	at org.eclipse.jdt.ls.core.internal.handlers.JDTLanguageServer.lambda$59(JDTLanguageServer.java:1216)
	at java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(Unknown Source)
	at java.base/java.util.concurrent.CompletableFuture$Completion.exec(Unknown Source)
	at java.base/java.util.concurrent.ForkJoinTask.doExec(Unknown Source)
	at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(Unknown Source)
	at java.base/java.util.concurrent.ForkJoinPool.scan(Unknown Source)
	at java.base/java.util.concurrent.ForkJoinPool.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source)
!SUBENTRY 1 org.eclipse.jdt.core 4 969 2023-10-26 16:12:15.657
!MESSAGE Enum.class [in java.lang [in <module:java.base>]] does not exist
  1. I cannot reproduce this issue consistently, but I encountered it twice in my local environment recently. Reloading the window usually fixes it. I am opening this issue to see if anyone else has the same problem.

Beitragsleitfaden

Beitragsleitfaden öffnen

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

Reproduziere das Problem im spring-petclinic-Projekt und untersuche die Diagnose für PetClinicIntegrationTests.java zusammen mit dem Java Projects JRE-Baum. Beginne mit dem Bericht über das fehlende Enum.class und dem Stack Trace von org.eclipse.jdt.ls.core und vergleiche dann das Verhalten vor und nach dem Neuladen des VS Code-Fensters. Als erledigt gilt die Aufgabe, wenn die partiellen JDK-Klassen nicht mehr den gemeldeten Auflösungsfehler verursachen.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
java, vscode
Bereich
devtools, tooling
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
30/100

Neue Issues direkt in Ihr Postfach

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