[Demonstration 1]

[Buggy Method]
private void initComponents() {
    items = new Grid<>();
    TextField itemName = new TextField("Name");
    items.addColumn(Item::getName).setCaption("Item name").setEditorComponent(itemName, Item::setName);
    items.addColumn(Item::getArticleNumber).setCaption("Article number");
    items.addColumn(Item::getCategory).setCaption("Category");
    items.addColumn(Item::getPlace).setCaption("Place");
    items.addColumn(Item::getCost).setCaption("Cost");
    items.addColumn(Item::getPurchaseDate).setCaption("Purchase date");
    items.addColumn(Item::getRegistrationDate).setCaption("Registration date");
    items.addColumn(Item::getDescription).setCaption("Description");
    items.setSizeFull();
    ListDataProvider<Item> dataProvider = DataProvider.ofCollection(itemService.getAll());
    items.setDataProvider(dataProvider);
    items.getEditor().setEnabled(true);
    items.getEditor().addSaveListener(editorSaveEvent -> {
        itemService.saveItem(editorSaveEvent.getBean());
    });
    filterTextField = new TextField();
    filterTextField.setPlaceholder("Filter");
    filterTextField.addValueChangeListener(event -> dataProvider.addFilter(Item::getName, name -> {
        String nameLower = name == null ? "" : name.toLowerCase();
        String filterLower = event.getValue().toLowerCase();
        return nameLower.contains(filterLower);
    }));
}

[Buggy Hunk]
dataProvider.addFilter(Item::getName, name -> {

[Patch]
dataProvider.setFilter(Item::getName, name -> {

[Demonstration 3]

[Buggy Method]
public boolean verify() {
    Optional<LogRecord> firstInvalid = records.stream().filter(this::isInvalid).findFirst();
    if (!firstInvalid.isPresent())
        return true;
    LogRecord failedOn = firstInvalid.get();
    if (getLastRecord() != failedOn) {
        logError(failedOn);
        return false;
    }
    if (records.stream().filter((r) -> r != failedOn).filter(this::isInvalidWithCorruptedLastRecord).map(LogFile::logError).findFirst().isPresent()) {
        logError(failedOn);
        return false;
    }
    // if only the last record is corrupt and all other records have matching files on disk, @see verifyRecord,
    // then we simply exited whilst serializing the last record and we carry on
    logger.warn(String.format("Last record of transaction %s is corrupt or incomplete [%s], but all previous records match state on disk; continuing", id, failedOn.error));
    return true;
}

[Buggy Hunk]
.filter(this::isInvalidWithCorruptedLastRecord)

[Patch]
.filter(LogFile::isInvalidWithCorruptedLastRecord)