[Demonstration 1]

[Buggy Method]
public Command getCommand(String input) {
    input = input.trim();
    if (input == "") {
        Main.showToUser(Main.MESAGE_EMPTY_COMMAND);
        return null;
    }
    String[] splittedInput = input.split("\\s+", 2);
    String commandString = splittedInput[0];
    Command command = null;
    switch(commandString.toLowerCase()) {
        case COMMAND_ADD:
            AddParser addParser = new AddParser(getInputWithoutCommand(input, COMMAND_ADD));
            command = addParser.getCommand();
            break;
        case COMMAND_SHOW:
            ShowParser showParser = new ShowParser(getInputWithoutCommand(input, COMMAND_SHOW));
            command = showParser.getCommand();
            break;
        case COMMAND_EDIT:
            EditParser editParser = new EditParser(getInputWithoutCommand(input, COMMAND_EDIT));
            command = editParser.getCommand();
            break;
        case COMMAND_DELETE:
            DeleteParser deleteParser = new DeleteParser(getInputWithoutCommand(input, COMMAND_DELETE));
            command = deleteParser.getCommand();
            break;
        case COMMAND_MARK:
            UnmarkParser markParser = new UnmarkParser(getInputWithoutCommand(input, COMMAND_MARK));
            command = markParser.getCommand();
            break;
        case COMMAND_ADD_CAT:
            AddCatParser addCatParser = new AddCatParser(getInputWithoutCommand(input, COMMAND_ADD_CAT));
            command = addCatParser.getCommand();
            break;
        case COMMAND_SKIN:
            String colour = getInputWithoutCommand(input, COMMAND_SKIN);
            //command = CommandUtils.createSkinChangeCommand(colour);
            break;
        case COMMAND_STORAGE:
            String filePath = getInputWithoutCommand(input, COMMAND_STORAGE);
            //command = CommandUtils.createStorageCommand(filePath);
            break;
        case COMMAND_UNMARK:
            UnmarkParser unmarkParser = new UnmarkParser(getInputWithoutCommand(input, COMMAND_MARK));
            //command = unmarkParser.getCommand();
            break;
        case COMMAND_EXIT:
            command = CommandUtils.createExitCommand();
            break;
        default:
            command = CommandUtils.createInvalidCommand("Invalid Command: " + input);
    }
    return command;
}

[Buggy Hunk]
UnmarkParser markParser = new UnmarkParser(getInputWithoutCommand(input, COMMAND_MARK));

[Patch]
MarkParser markParser = new MarkParser(getInputWithoutCommand(input, COMMAND_MARK));

[Demonstration 2]

[Buggy Method]
public boolean isMarked(Cell cell) {
    return isMarked(board, cell);
}

[Buggy Hunk]
public boolean isMarked(Cell cell) {

[Patch]
private boolean isMarked(Cell cell) {

[Demonstration 3]

[Buggy Method]
public static Observable<Void> rxExecuteTransaction(final Transaction transaction) {
    if (Looper.myLooper() == null)
        return rxExecuteTransactionSync(transaction);
    else
        return rxExecuteTransactionAsync(transaction);
}

[Buggy Hunk]
public static Observable<Void> rxExecuteTransaction(final Transaction transaction) {

[Patch]
public static Completable rxExecuteTransaction(final Transaction transaction) {