redhat-developer / redhat-developer/vscode-java
Special characters in a branch name causes the extension to fail
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- TypeScript
- Sterne
- 2.3k
- Forks
- 546
- Ø Merge
- 20 Std. 1 Min.
- Gemergte PRs (30 T.)
- 11
Beschreibung
In my setup, someone (accidently) created a branch with an umlaut (ö). Even without checking out this branch, the extension fails immediately with the following error:
[Error - 7:52:05 AM] Jun 7, 2023, 7:52:05 AM Initialization failed
Malformed input or input contains unmappable characters: /workspaces/project/.git/refs/remotes/origin/feature/Sortierungsm��glichkeiten
java.nio.file.InvalidPathException: Malformed input or input contains unmappable characters: /workspaces/project/.git/refs/remotes/origin/feature/Sortierungsm��glichkeiten
at java.base/sun.nio.fs.UnixPath.encode(Unknown Source)
Environment
- Operating System: Windows 10 with WSL2 and a VSCode Remote-Container inside WSL2
- JDK version: openjdk 17.0.6 2023-01-17
- Visual Studio Code version: 1.78.2
- Java extension version: v1.19.0
Steps To Reproduce
- Clone https://github.com/Roemer/java-umlaut-test.git
- Switch to the branch with a special character:
git checkout HelloWörld - Open the java file to start the java language server
- Check the output of
Language Support for Java
Current Result
The error occured:
[Error - 9:22:28 AM] Jun 7, 2023, 9:22:28 AM Initialization failed
Malformed input or input contains unmappable characters: /workspaces/java-umlaut-test/.git/refs/heads/HelloW��rld
java.nio.file.InvalidPathException: Malformed input or input contains unmappable characters: /workspaces/java-umlaut-test/.git/refs/heads/HelloW��rld
at java.base/sun.nio.fs.UnixPath.encode(Unknown Source)
at java.base/sun.nio.fs.UnixPath.<init>(Unknown Source)
at java.base/sun.nio.fs.UnixFileSystem.getPath(Unknown Source)
at java.base/java.nio.file.Path.of(Unknown Source)
at java.base/java.nio.file.Paths.get(Unknown Source)
at org.eclipse.core.internal.filesystem.local.nio.PosixHandler.fetchFileInfo(PosixHandler.java:41)
at org.eclipse.core.internal.filesystem.local.LocalFileNativesManager.fetchFileInfo(LocalFileNativesManager.java:87)
at org.eclipse.core.internal.filesystem.local.LocalFile.fetchInfo(LocalFile.java:161)
at org.eclipse.core.filesystem.provider.FileStore.fetchInfo(FileStore.java:260)
at org.eclipse.core.filesystem.provider.FileStore.childInfos(FileStore.java:99)
at org.eclipse.core.internal.localstore.UnifiedTree.getLocalList(UnifiedTree.java:360)
at org.eclipse.core.internal.localstore.UnifiedTree.addChildren(UnifiedTree.java:148)
at org.eclipse.core.internal.localstore.UnifiedTree.addNodeChildrenToQueue(UnifiedTree.java:254)
at org.eclipse.core.internal.localstore.UnifiedTree.accept(UnifiedTree.java:120)
at org.eclipse.core.internal.localstore.FileSystemResourceManager.refreshResource(FileSystemResourceManager.java:978)
at org.eclipse.core.internal.localstore.FileSystemResourceManager.refresh(FileSystemResourceManager.java:961)
at org.eclipse.core.internal.resources.Resource.refreshLocal(Resource.java:1573)
at org.eclipse.core.internal.resources.Project.open(Project.java:1094)
at org.eclipse.core.internal.resources.Project.open(Project.java:1150)
at org.eclipse.m2e.core.internal.project.ProjectConfigurationManager.create(ProjectConfigurationManager.java:845)
at org.eclipse.m2e.core.internal.project.ProjectConfigurationManager.lambda$1(ProjectConfigurationManager.java:153)
at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.executeBare(MavenExecutionContext.java:394)
at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:275)
at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:214)
at org.eclipse.m2e.core.internal.project.ProjectConfigurationManager.importProjects(ProjectConfigurationManager.java:139)
at org.eclipse.m2e.core.internal.project.ProjectConfigurationManager.importProjects(ProjectConfigurationManager.java:130)
at org.eclipse.jdt.ls.core.internal.managers.MavenProjectImporter.importToWorkspace(MavenProjectImporter.java:241)
at org.eclipse.jdt.ls.core.internal.managers.ProjectsManager.importProjects(ProjectsManager.java:150)
at org.eclipse.jdt.ls.core.internal.managers.ProjectsManager.initializeProjects(ProjectsManager.java:112)
at org.eclipse.jdt.ls.core.internal.handlers.InitHandler$1.runInWorkspace(InitHandler.java:254)
at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:43)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
Expected Result
No error occurs
Additional Informations
It seems that this does not happen on Windows, just when using Linux (or WSL2 in my case)
Beitragsleitfaden
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
Reproduziere den Fehler mit dem verlinkten Umlaut-Branch und gehe dann vom Stacktrace bei PosixHandler.fetchFileInfo aus. Folge dem Pfad der Projektinitialisierung über MavenProjectImporter und ProjectsManager.initializeProjects. Die Aufgabe ist abgeschlossen, wenn das Öffnen des Java-Projekts unter Linux oder WSL2 ohne InvalidPathException abgeschlossen wird.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- git, java, vscode
- Bereich
- developer-experience, tooling
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 38/100