ResourceException Marker id not found when calling BreakpointManager.removeBreakpoints()
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
- #2218 de @trancexpress — cerrado sin fusionar
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 45/100
Línea de trabajo
Comienza con org.eclipse.debug.internal.core.BreakpointManager.removeBreakpoints(IBreakpoint[], boolean) y compara su gestión de las reglas del workspace con el bug 540132 y el commit referenciado. Reproduce la secuencia que involucra JavaDebugOptionsManager.updateBreakpointMessages(IBreakpoint[]) y marker.setAttribute; se considera terminado cuando eliminar breakpoints ya no produce el stack trace de ResourceException por no encontrar el marcador.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
See: https://bugs.eclipse.org/bugs/show_bug.cgi?id=564872
During one of our tests we observed the following exception:
org.eclipse.core.internal.resources.ResourceException: Marker id 1332 not found.
at org.eclipse.core.internal.resources.Marker.checkInfo(Marker.java:63)
at org.eclipse.core.internal.resources.Marker.setAttribute(Marker.java:260)
at org.eclipse.jdt.internal.debug.ui.JavaDebugOptionsManager$2.run(JavaDebugOptionsManager.java:894)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2292)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2317)
at org.eclipse.jdt.internal.debug.ui.JavaDebugOptionsManager.updateBreakpointMessages(JavaDebugOptionsManager.java:906)
at org.eclipse.jdt.internal.debug.ui.JavaDebugOptionsManager.breakpointsChanged(JavaDebugOptionsManager.java:965)
at org.eclipse.debug.internal.core.BreakpointManager$BreakpointsNotifier.run(BreakpointManager.java:1104)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
at org.eclipse.debug.internal.core.BreakpointManager$BreakpointsNotifier.notify(BreakpointManager.java:1124)
at org.eclipse.debug.internal.core.BreakpointManager.fireUpdate(BreakpointManager.java:975)
at org.eclipse.debug.internal.core.BreakpointManager.access$4(BreakpointManager.java:962)
at org.eclipse.debug.internal.core.BreakpointManager$BreakpointManagerVisitor.update(BreakpointManager.java:788)
at org.eclipse.debug.internal.core.BreakpointManager.resourceChanged(BreakpointManager.java:699)
at org.eclipse.core.internal.events.NotificationManager$1.run(NotificationManager.java:305)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
at org.eclipse.core.internal.events.NotificationManager.notify(NotificationManager.java:295)
at org.eclipse.core.internal.events.NotificationManager.broadcastChanges(NotificationManager.java:158)
at org.eclipse.core.internal.resources.Workspace.broadcastBuildEvent(Workspace.java:366)
at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:157)
at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:244)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
!SUBENTRY 1 org.eclipse.core.resources 4 376 2020-06-30 21:21:07.013
Upon investigation, the exception coincides with a call to org.eclipse.debug.internal.core.BreakpointManager.removeBreakpoints(IBreakpoint[], boolean) from our test. The code in BreakpointManager.removeBreakpoints() deletes a breakpoint marker without specifying a rule, and so can cause race condition (and e.g. cause the error stack trace above).
As in bug 540132 (https://git.eclipse.org/c/jdt/eclipse.jdt.debug.git/commit/?id=897972b60a60c5bd9d0b8138d5be9b07addfcaf5), the breakpoints operation should specify a workspace modification rule if there is no matching outer rule.
To reproduce:
- Debug Eclipse.
- In the debuggee Eclipse, set a breakpoint at the
System.out.println()in this snippet:
package test;
public class TestClass {
public static void main1(String[] args) {
System.out.println("hello world");
}
}
- Set a breakpoint at
org.eclipse.jdt.internal.debug.ui.JavaDebugOptionsManager.updateBreakpointMessages(IBreakpoint[]), at:
marker.setAttribute(IMarker.MESSAGE, type + info);
- Set a breakpoint at the start of:
org.eclipse.debug.internal.core.BreakpointManager.removeBreakpoints(IBreakpoint[], boolean) - Change the
mainmethod name tomain1(simply by typing, no need for refactor rename) and save. This hits the breakpoint atJavaDebugOptionsManager.updateBreakpointMessages. - Remove all breakpoints with the respective Breakpoints view action, this hits the breakpoint at
BreakpointManager.removeBreakpoint(). - Resume first the thread in
BreakpointManager(twice), then the thread inJavaDebugOptionsManager.
- Lenguaje dominante
- Java
- Estrellas
- 165
- Forks
- 174
- Merge medio
- 2 d 16 h
- PR fusionados (30 d)
- 42
Preparar el entorno
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de eclipse-platform/eclipse.platform
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
eclipse-platform/eclipse.platform#3019 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
eclipse-platform/eclipse.platform#2940 ·
Los mantenedores suelen responder en 1 día
-
Terminal views all show same name 'Terminal' in Ctrl+F7 view switcher popupPosiblemente ocupada @ravnskjaer la tomó hace 7 días. Abiertobug good first issue help wanted
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
eclipse-platform/eclipse.platform#2774 · 4 comentarios ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
eclipse-platform/eclipse.platform#2593 · 7 comentarios ·
Los mantenedores suelen responder en 1 día
-
[Win32] Folder becomes a file in the workspace tree when a child is deleted during `refreshLocal` (regression in 2026-09)Posiblemente ocupada @FlorianKroiss la tomó hace 2 días. Abiertobug regression Windows
Dificultad 4/5 3-5 días Aptitud para principiantes 15/100
eclipse-platform/eclipse.platform#3024 · 5 comentarios ·
Los mantenedores suelen responder en 1 día
Todos los issues de eclipse-platform/eclipse.platform
Issues similares
-
approved bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
checkstyle/checkstyle#21981 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
[lake/iceberg] Reserved write-mode properties can be set and reset through their `iceberg.` keyPosiblemente ocupada @aphenix-r7 la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 Menos de una hora Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
MCModderAnchor/TACZ#758 ·
-
agent-java community triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
elastic/apm-agent-java#4594 ·
Los mantenedores suelen responder en 1 día