[Demonstration 1]

[Buggy Method]
public List<Book> searchBooksOnSite(String link) {
    try {
        UserAgent userAgent = new UserAgent();
        logger.info("Searching book on site = " + link);
        Document document = userAgent.visit(link);
        return searchBooks(document);
    } catch (ResponseException e) {
        logger.error(e.getStackTrace().toString());
    }
    return Collections.emptyList();
}

[Buggy Hunk]
logger.error(e.getStackTrace().toString());

[Patch]
logger.error(Arrays.toString(e.getStackTrace()));

[Demonstration 2]

[Buggy Method]
@Override
public String roomOptions(String command) {
    String answer = "";
    command.toLowerCase();
    boolean isUnderstood = false;
    if ((command.contains("door") && command.contains("open") && command.contains("house")) || (command.contains("go") && (command.contains("house") || command.contains("home")))) {
        nextRoom = TestRoom.getInstance();
        answer = "changeRoomSequence";
    } else if (command.contains("describe")) {
        answer = description;
    } else if (command.contains("place") || (command.contains("where") && (command.contains("go") || command.contains("head")))) {
        answer = placesToGo();
    } else if (command.contains("inn") || command.contains("salty") || command.contains("tavern")) {
        nextRoom = InnLowClass.getInstance();
        answer = "changeRoomSequence";
    } else if (command.contains("blacksmith") || command.contains("Jack") || command.contains("shop")) {
        nextRoom = BlacksmithShop.getInstance();
        answer = "changeRoomSequence";
    } else if (command.contains("arena")) {
        nextRoom = ArenaEntry.getInstance();
        answer = "changeRoomSequence";
    } else if (command.contains("go") && command.contains("outside")) {
        nextRoom = CastleDoor.getInstance();
        answer = "changeRoomSequence";
    } else {
        answer = "I couldn't understand that...";
    }
    return answer;
}

[Buggy Hunk]
} else if (command.contains("place") || (command.contains("where") && (command.contains("go") || command.contains("head")))) {

[Patch]
} else if (command.contains("place") || (command.contains("where") && (command.contains("go") || command.contains("head"))) || command.contains("visit")) {

[Demonstration 3]

[Buggy Method]
@Override
public void onPartialResult(Hypothesis hypothesis) {
    if (hypothesis == null) {
        return;
    }
    String text = hypothesis.getHypstr();
    if (text.equals(KEYPHRASE)) {
        recognizer.stop();
    }
}

[Buggy Hunk]
if (text.equals(KEYPHRASE))

[Patch]
if (text.equals(KEYPHRASE) && recognizer != null)