Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'org.eclipse.debug.core/core/org/eclipse/debug/internal/core/BreakpointManager.java')
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/BreakpointManager.java15
1 files changed, 10 insertions, 5 deletions
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/BreakpointManager.java b/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/BreakpointManager.java
index c738aaa3a..6b3ed75bb 100644
--- a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/BreakpointManager.java
+++ b/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/BreakpointManager.java
@@ -1421,22 +1421,24 @@ public class BreakpointManager implements IBreakpointManager, IResourceChangeLis
}
@Override
- public synchronized void enableTriggerPoints(IBreakpoint[] triggerPoints, boolean enable) {
+ public void enableTriggerPoints(IBreakpoint[] triggerPoints, boolean enable) {
IBreakpoint[] triggerPointArray = triggerPoints;
if (triggerPoints == null) {
if (enable) {
- triggerPointArray = fTriggerPointDisabledList.toArray(new IBreakpoint[0]);
+ synchronized (fTriggerPointDisabledList) {
+ triggerPointArray = fTriggerPointDisabledList.toArray(new IBreakpoint[0]);
+ }
} else {
triggerPointArray = getTriggerPoints();
- fTriggerPointDisabledList.clear();
}
}
+ List<IBreakpoint> toDisable = new ArrayList<>();
for (IBreakpoint iBreakpoint : triggerPointArray) {
try {
IMarker m = iBreakpoint.getMarker();
if (m != null && m.exists()) {
if (!enable && iBreakpoint.isEnabled()) {
- fTriggerPointDisabledList.add(iBreakpoint);
+ toDisable.add(iBreakpoint);
}
iBreakpoint.setEnabled(enable);
}
@@ -1444,8 +1446,11 @@ public class BreakpointManager implements IBreakpointManager, IResourceChangeLis
// ignore
}
}
- if (enable) {
+ synchronized (fTriggerPointDisabledList) {
fTriggerPointDisabledList.clear();
+ if (!enable) {
+ fTriggerPointDisabledList.addAll(toDisable);
+ }
}
}

Back to the top