[Demonstration 1]

[Buggy Method]
@Test
public void should_start_new_round_on_button_clicked_and_words_match() {
    Word targetWord = new Word();
    targetWord.setId("fooid");
    targetWord.setTextEng("it's amazing");
    targetWord.setTextSpa("issa amassing");
    List<Word> words = new ArrayList<>();
    words.add(targetWord);
    when(populateWordsStorageUseCase.populate()).thenReturn(Observable.just(words));
    when(removeWordUseCase.remove(any(Word.class))).thenReturn(Observable.just(targetWord));
    presenter.onCreate();
    presenter.onGreenPlayerButtonClicked();
    verify(getAllWordsUseCase).get();
}

[Buggy Hunk]
targetWord.setId("fooid");

[Patch]
targetWord.setId(1);

[Demonstration 2]

[Buggy Method]
@Override
public void stopObserving(Observer observer) {
    this.observers.remove(observer);
    sendMessage("stopObserving", observer);
}

[Buggy Hunk]
this.observers.remove(observer);

[Patch]
observers.remove(observer);

[Demonstration 3]

[Buggy Method]
protected void dispatch(Object event) {
    observers.forEach(observer -> observer.observe(event));
}

[Buggy Hunk]
observers.forEach(observer -> observer.observe(event));

[Patch]
observers.forEach(observer -> observer.handle(event));