Buggy code:
public class RControllerBreakpointAdapter implements IRControllerTracepointAdapter , IBreakpointManagerListener , IBreakpointsListener { private static class Position extends TracepointPosition { private final IRLineBreakpoint breakpoint ; private String label ; public Position ( final int type , final long id , final int [ ] exprIndex , final IRLineBreakpoint breakpoint ) { } void setExprSrcref ( final int [ ] srcref ) { <START_BUG> exprSrcref = srcref ; <END_BUG> } public IRLineBreakpoint getBreakpoint ( ) { } void setLabel ( final String label ) { } public String getElementLabel ( ) { } } private static class Element extends ElementTracepointPositions { private final IResource resource ; public Element ( final SrcfileData fileInfo , final IResource resource , final String elementId , final int [ ] elementSrcref ) { } @ Override public List < RControllerBreakpointAdapter . Position > getPositions ( ) { } public IResource getResource ( ) { } } private static class UpdateData { private final IResource resource ; private final String elementId ; public UpdateData ( final IResource resource , final String elementId ) { } } private static class BreakpointData implements IRBreakpoint . ITargetData { final RControllerBreakpointAdapter . Element installed ; public BreakpointData ( final RControllerBreakpointAdapter . Element installed ) { } public boolean isInstalled ( ) { } public Object getAdapter ( final Class adapter ) { } } private final IRDebugTarget fDebugTarget ; private final AbstractRDbgController fController ; private IBreakpointManager fBreakpointManager ; private final AtomicInteger fPositionModCounter = new AtomicInteger ( ) ; private boolean fInitialized ; private final List < IRLineBreakpoint > fPositionUpdatesBreakpoints = new ArrayList < IRLineBreakpoint > ( ) ; private final List < RControllerBreakpointAdapter . UpdateData > fPositionUpdatesElements = new ArrayList < RControllerBreakpointAdapter . UpdateData > ( ) ; private final Object fPositionUpdatesLock = fPositionUpdatesBreakpoints ; private final List < IRLineBreakpoint > fStateUpdatesBreakpoints = new ArrayList < IRLineBreakpoint > ( ) ; private final Map < IResource , List < TracepointState > > fStateUpdatesMap = new HashMap < IResource , List < TracepointState > > ( ) ; private final Object fStateUpdatesLock = fStateUpdatesBreakpoints ; private final IToolRunnable fUpdateRunnable = new ISystemRunnable ( ) { private List < String > fKnownPackages = new ArrayList < String > ( ) ; public String getTypeId ( ) { } public String getLabel ( ) { } public boolean isRunnableIn ( final ITool tool ) { } public boolean changed ( final int event , final ITool tool ) { } public void run ( final IToolService service , final IProgressMonitor monitor ) throws CoreException { } } ; private boolean fUpdateRunnableScheduled ; public RControllerBreakpointAdapter ( final IRDebugTarget target , final AbstractRDbgController controller ) { } public void init ( ) { } public boolean supportsBreakpoint ( final IRBreakpoint breakpoint ) { } public boolean matchScriptBreakpoint ( final IRModelSrcref srcref , final IProgressMonitor monitor ) { } public ElementTracepointInstallationRequest getElementTracepoints ( final SrcfileData srcfile , final IRModelSrcref srcref , final IProgressMonitor monitor ) { } public ElementTracepointInstallationRequest prepareFileElementTracepoints ( final SrcfileData srcfile , final IRSourceUnit su , final IProgressMonitor monitor ) { } public void installElementTracepoints ( final ElementTracepointInstallationRequest request , final IProgressMonitor monitor ) { } public List < RControllerBreakpointAdapter . Element > getPendingElementPositions ( final IProgressMonitor monitor ) { } private void logPrepareError ( final CoreException e , final IRLineBreakpoint breakpoint ) { } private void report ( final ElementTracepointInstallationRequest request , final ElementTracepointInstallationReport report ) { } private void addBreakpoint ( final Map < String , RControllerBreakpointAdapter . Element > map , final SrcfileData srcfile , final IResource resource , final String elementId , final IRLineBreakpoint lineBreakpoint , final RLineBreakpointValidator validator , final int modCounter ) throws CoreException { } private void addClear ( final Map < String , RControllerBreakpointAdapter . Element > map , final SrcfileData srcfile , final IResource resource , final String elementId ) throws CoreException { } private void addElements ( final List < RControllerBreakpointAdapter . Element > list , final Map < String , RControllerBreakpointAdapter . Element > map , final boolean delete ) { } public void breakpointManagerEnablementChanged ( final boolean enabled ) { } public void breakpointsAdded ( final IBreakpoint [ ] breakpoints ) { } public void breakpointsRemoved ( final IBreakpoint [ ] breakpoints , final IMarkerDelta [ ] deltas ) { } public void breakpointsChanged ( final IBreakpoint [ ] breakpoints , final IMarkerDelta [ ] deltas ) { } protected void deactivateBreakpoint ( final IResource resource , final long id ) { } private List < TracepointState > getPendingTracepointStates ( ) { } private void scheduleStateUpdate ( final IRLineBreakpoint lineBreakpoint ) { } private void schedulePositionUpdate ( final IRLineBreakpoint lineBreakpoint ) { } private void checkUpdates ( ) { } private boolean contains ( final List < ? extends Object > list , final Object object ) { } private boolean contains ( final Object [ ] array , final Object object ) { } private int getLineNumber ( final IMarker marker , final IMarkerPositionResolver resolver ) { } private boolean isScriptBreakpoint ( final IRLineBreakpoint breakpoint ) throws CoreException { } private boolean isElementBreakpoint ( final IRLineBreakpoint breakpoint ) throws CoreException { } private TracepointState createState ( final IRLineBreakpoint lineBreakpoint ) throws CoreException { } public Object toEclipseData ( final TracepointEvent event ) { } public void dispose ( ) { } }

Fix:
this . exprSrcref = srcref ;