Extension incorrectly runs cached `.class` file from another class of same name with no `package`

Abierto
#1,587 1 comentario 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
45/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Estancado
Stack tecnológico
java, typescript, vscode

Línea de trabajo

Reproduce el problema ejecutando folder1/Main.java y después folder2/Main.java, incluido el diseño ./Main.java y ./folder/Main.java. Rastrea cómo la extensión selecciona las clases compiladas en caché; se considera terminado cuando cada Main.java no relacionado ejecuta su propia salida, incluso después de que el otro archivo ya se haya ejecutado.

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

Descripción

ai-triaged bug

Bug report

Suppose there is a file structure:

folder1/
    Main.java
folder2/
    Main.java
// folder1/Main.java
public class Main {
    public static void main(String[] args) {
        System.out.println("Main 1");
    }
}
// folder2/Main.java
public class Main {
    public static void main(String[] args) {
        System.out.println("Main 2");
    }
}

No package statements; the projects are not connected at all.

When folder1/Main.java is run first, it gives the correct output Main 1.
But if folder2/Main.java is then run, it gives the wrong output of Main 1 instead of Main 2; the first built file is run instead.
folder1/Main.java 'shadows' folder2/Main.java, since the class name is the same and there are no package statements.
Another file structure that causes this is ./Main.java, ./folder/Main.java

This bug is inconvenient when multiple different, unrelated Java projects are in the same workspace.

Lenguaje dominante
TypeScript
Estrellas
591
Forks
429
Merge medio
1 d 9 h
PR fusionados (30 d)
19

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.

Más de microsoft/vscode-java-debug

Todos los issues de microsoft/vscode-java-debug

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.