Source:
<code>public void onLineChange( final VirtualFile file, final int firstLine, final int linesAdded, final int linesRemoved) { final List<Breakpoint> fileBreakpoints = breakpointStorage.getByPath(file.getLocation().toString()); final int delta = linesAdded - linesRemoved; if (fileBreakpoints != null) { LOG.fine("Change in file with breakpoints " + file.getLocation().toString()); final List<Breakpoint> toRemove = new ArrayList<>(); final List<Breakpoint> toAdd = new ArrayList<>(); for (final Breakpoint breakpoint : fileBreakpoints) { final int lineNumber = breakpoint.getLocation().getLineNumber() - 1; if (firstLine <= lineNumber && lineNumber < firstLine + linesRemoved) { toRemove.add(breakpoint); continue; } if (firstLine <= lineNumber && lineNumber < firstLine + linesAdded) { toRemove.add(breakpoint); continue; } if (lineNumber >= firstLine + Math.abs(delta)) { Location currentLocation = breakpoint.getLocation(); Location newLocation = new LocationImpl( currentLocation.getTarget(), currentLocation.getLineNumber() + delta, currentLocation.isExternalResource(), currentLocation.getExternalResourceId(), currentLocation.getResourceProjectPath(), currentLocation.getMethod(), currentLocation.getThreadId()); toRemove.add(breakpoint); toAdd.add( new BreakpointImpl( newLocation, <START> new ConditionsImpl(breakpoint.getConditions().getHitCondition(), breakpoint.getConditions().getHitCount()), <END> breakpoint.isEnabled())); } } for (final Breakpoint breakpoint : toRemove) { deleteBreakpoint(file, breakpoint); } for (final Breakpoint breakpoint : toAdd) { addBreakpoint(file, breakpoint); } } }</code><technical_language>Add constructor for ConditionsImpl pass Conditions it</technical_language>

Target:
public void onLineChange( final VirtualFile file, final int firstLine, final int linesAdded, final int linesRemoved) { final List<Breakpoint> fileBreakpoints = breakpointStorage.getByPath(file.getLocation().toString()); final int delta = linesAdded - linesRemoved; if (fileBreakpoints != null) { LOG.fine("Change in file with breakpoints " + file.getLocation().toString()); final List<Breakpoint> toRemove = new ArrayList<>(); final List<Breakpoint> toAdd = new ArrayList<>(); for (final Breakpoint breakpoint : fileBreakpoints) { final int lineNumber = breakpoint.getLocation().getLineNumber() - 1; if (firstLine <= lineNumber && lineNumber < firstLine + linesRemoved) { toRemove.add(breakpoint); continue; } if (firstLine <= lineNumber && lineNumber < firstLine + linesAdded) { toRemove.add(breakpoint); continue; } if (lineNumber >= firstLine + Math.abs(delta)) { Location currentLocation = breakpoint.getLocation(); Location newLocation = new LocationImpl( currentLocation.getTarget(), currentLocation.getLineNumber() + delta, currentLocation.isExternalResource(), currentLocation.getExternalResourceId(), currentLocation.getResourceProjectPath(), currentLocation.getMethod(), currentLocation.getThreadId()); toRemove.add(breakpoint); toAdd.add( new BreakpointImpl(newLocation, breakpoint.isEnabled(), breakpoint.getCondition())); } } for (final Breakpoint breakpoint : toRemove) { deleteBreakpoint(file, breakpoint); } for (final Breakpoint breakpoint : toAdd) { addBreakpoint(file, breakpoint); } } }