redhat-developer / redhat-developer/vscode-java

Java language server fails in JrtFileSystem.walkModuleImage() with 1.10.0

Ouverte
#2,655 5 commentaires 4 réactions 1 personne assignée Voir sur GitHub

@testforstephen y travaille déjà.

Depuis le 19/9/2022.

bug ls-error/crash regression upstream
Langage dominant
TypeScript
Étoiles
2.3k
Forks
546
Merge moyen
20 h 1 min
PR mergées (30 j)
11

Description

Java language server fails when opening a project with the following error/stacktrace:

[Error - 5:16:03 PM] Sep 1, 2022, 5:16:03 PM Initialization failed
Cannot invoke "org.eclipse.jdt.internal.compiler.util.JrtFileSystem.walkModuleImage(org.eclipse.jdt.internal.compiler.util.JRTUtil$JrtFileVisitor, int)" because the return value of "org.eclipse.jdt.internal.compiler.util.JRTUtil.getJrtSystem(java.io.File, String)" is null
java.lang.NullPointerException: Cannot invoke "org.eclipse.jdt.internal.compiler.util.JrtFileSystem.walkModuleImage(org.eclipse.jdt.internal.compiler.util.JRTUtil$JrtFileVisitor, int)" because the return value of "org.eclipse.jdt.internal.compiler.util.JRTUtil.getJrtSystem(java.io.File, String)" is null
at org.eclipse.jdt.internal.compiler.util.JRTUtil.walkModuleImage(JRTUtil.java:242)
at org.eclipse.jdt.internal.core.JavaProject.loadModulesInJimage(JavaProject.java:983)
at org.eclipse.jdt.internal.core.JavaProject.computePackageFragmentRoots(JavaProject.java:782)
at org.eclipse.jdt.internal.core.JavaProject.computePackageFragmentRoots(JavaProject.java:1103)
at org.eclipse.jdt.internal.core.JavaProject.computePackageFragmentRoots(JavaProject.java:1048)
at org.eclipse.jdt.internal.core.JavaProject.computePackageFragmentRoots(JavaProject.java:1025)
at org.eclipse.jdt.internal.core.JavaProject.buildStructure(JavaProject.java:538)
at org.eclipse.jdt.internal.core.Openable.generateInfos(Openable.java:266)
at org.eclipse.jdt.internal.core.JavaElement.openWhenClosed(JavaElement.java:597)
at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:328)
at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:314)
at org.eclipse.jdt.internal.core.JavaElement.getChildren(JavaElement.java:269)
at org.eclipse.jdt.internal.core.JavaProject.getPackageFragmentRoots(JavaProject.java:2384)
at org.eclipse.jdt.internal.core.JavaProject.getPackageFragments(JavaProject.java:2408)
at org.eclipse.jdt.ls.core.internal.managers.ProjectsManager.cleanupResources(ProjectsManager.java:278)
at org.eclipse.jdt.ls.core.internal.managers.ProjectsManager.initializeProjects(ProjectsManager.java:107)
at org.eclipse.jdt.ls.core.internal.handlers.InitHandler$1.runInWorkspace(InitHandler.java:244)
at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:43)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)

Downgrading the extension to the previous version (1.9.0) fixed the issue.

Environment
  • Operating System: Ubuntu 22.04, but also seen by coworkers using MacOS
  • JDK version: OpenJDK Runtime Environment Zulu17.28+13-CA (build 17+35-LTS)
  • Visual Studio Code version: 1.70.2
  • Java extension version: 1.10.0
Steps To Reproduce
  1. Upgrade to the newest vscode-java release
  2. Open an existing Java project

I don't know if it happens for all java projects, our is pretty complex and I unfortunately cannot share it.

Current Result

Opening an existing java project fails (it logs errors as described above and never finishes).

Expected Result

Opening java projects that worked in 1.9.0 should work with the latest version.

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Évaluation

Cette issue n'a pas encore été évaluée.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.