[Demonstration 1]

[Buggy Method]
private String loadAnswer(final String filename) {
    Path path = Paths.get(userDirectory + somDirectory + testDirectory + filename + extensionAnswer);
    byte[] encoded;
    try {
        encoded = Files.readAllBytes(path);
    } catch (IOException e) {
        throw new RuntimeException("Failed to read " + filename);
    }
    return new String(encoded, StandardCharsets.UTF_8);
}

[Buggy Hunk]
throw new RuntimeException("Failed to read " + filename);

[Patch]
throw new RuntimeException("Failed to read " + path);

[Demonstration 2]

[Buggy Method]
public void showUpdateNotification(Result res) {
    if (res.isRes() && res.getUpdatedAuthors().isEmpty() && !mSettingsHelper.getDebugFlag()) {
        //no errors and no updates - no notification
        return;
    }
    if (!res.isRes() && mSettingsHelper.getIgnoreErrorFlag()) {
        //error and we ignore them
        return;
    }
    NotificationData notifyData = NotificationData.getInstance(mContext);
    if (res.isRes()) {
        //we have updates
        if (res.getUpdatedAuthors().isEmpty()) {
            //DEBUG CASE
            notifyData.notifyUpdateDebug(mSettingsHelper);
        } else {
            notifyData.notifyUpdate(mSettingsHelper, res.getUpdatedAuthors());
        }
    } else {
        //connection Error
        notifyData.notifyUpdateError(mSettingsHelper);
    }
}

[Buggy Hunk]
public void showUpdateNotification(Result res){

[Patch]
void showUpdateNotification(Result res) {

[Demonstration 3]

[Buggy Method]
@Override
public void mouseReleased(MouseEvent e) {
    super.mouseReleased(e);
    Tool currentTool = Setting.getCurrentTool();
    if (currentTool == Tool.Select) {
        Environ.getGlassPanel().clear();
        Environ.setSelectedPattern(null);
        return;
    }
    int x = e.getX();
    int y = e.getY();
    int nx, ny, height, width;
    width = Math.abs(x - startX);
    height = Math.abs(y - startY);
    nx = startX;
    ny = startY;
    if (y < startY)
        ny = y;
    if (x < startX)
        nx = x;
    Pattern p = null;
    Environ.getGlassPanel().setShape(null);
    if (currentTool == Tool.Rectangle) {
        p = new RectangleComponent(nx, ny, width, height);
    } else if (currentTool == Tool.Oval) {
        p = new OvalPattern(nx, ny, width, height);
    } else if (currentTool == Tool.Line) {
        p = new LinePattern(nx, ny, width, height, startX, startY, x, y);
    }
    ((JLayeredPane) e.getSource()).add(p, Setting.getLayer());
}

[Buggy Hunk]
Environ.getGlassPanel().setShape(null);

[Patch]
Environ.getGlassPanel().clear();