redhat-developer / redhat-developer/vscode-java

Special characters in a branch name causes the extension to fail

Abierto
#3,139 4 comentarios 2 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Lenguaje dominante
TypeScript
Estrellas
2.3k
Forks
546
Merge medio
20 h 1 min
PR fusionados (30 d)
11

Descripción

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
  1. Clone https://github.com/Roemer/java-umlaut-test.git
  2. Switch to the branch with a special character: git checkout HelloWörld
  3. Open the java file to start the java language server
  4. 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)

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Reproduce el fallo con la rama de umlaut enlazada y, a continuación, parte del stack trace en PosixHandler.fetchFileInfo y sigue la ruta de inicialización del proyecto a través de MavenProjectImporter y ProjectsManager.initializeProjects. Se considera terminado cuando la apertura del proyecto Java en Linux o WSL2 se completa sin InvalidPathException.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
git, java, vscode
Área
developer-experience, tooling
Tipo de issue
Error
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
38/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.