Bug 545767: [R-Debug] Fix applying of breakpoint changes while tasks are
running

Change-Id: I371c26e89beb6ac93d9154b4eec150b22759670d
diff --git a/r/org.eclipse.statet.r.debug.core/src/org/eclipse/statet/internal/r/debug/core/breakpoints/RControllerBreakpointAdapter.java b/r/org.eclipse.statet.r.debug.core/src/org/eclipse/statet/internal/r/debug/core/breakpoints/RControllerBreakpointAdapter.java
index ed6e13d..d0b36d9 100644
--- a/r/org.eclipse.statet.r.debug.core/src/org/eclipse/statet/internal/r/debug/core/breakpoints/RControllerBreakpointAdapter.java
+++ b/r/org.eclipse.statet.r.debug.core/src/org/eclipse/statet/internal/r/debug/core/breakpoints/RControllerBreakpointAdapter.java
@@ -1520,6 +1520,7 @@
 						}
 						
 						check= true;
+						final String breakpointType= rBreakpoint.getBreakpointType();
 						final IMarker marker= rBreakpoint.getMarker();
 						if (!marker.getResource().equals(delta.getResource())
 								|| marker.getId() != delta.getId()) {
@@ -1530,9 +1531,14 @@
 							scheduleStateUpdate(rBreakpoint);
 						}
 						
-//						synchronized (fPendingPositionUpdatesLock) {
-//							schedulePositionUpdate(lineBreakpoint);
-//						}
+						if (breakpointType == RDebugModel.R_LINE_BREAKPOINT_TYPE_ID
+								|| breakpointType == RDebugModel.R_METHOD_BREAKPOINT_TYPE_ID) {
+							// see Bug 545767
+							synchronized (this.positionUpdatesLock) {
+								this.positionModCounter.incrementAndGet();
+								schedulePositionUpdate((IRLineBreakpoint) rBreakpoint);
+							}
+						}
 					}
 					catch (final Exception e) {
 						RDebugCorePlugin.log(new Status(IStatus.ERROR, RDebugCorePlugin.BUNDLE_ID, 0,