[Demonstration 1]

[Buggy Method]
private static void initListeners() {
    showTestsButton.addActionListener(e -> {
        if (isPanelExpanded) {
            listsPanel.remove(testList);
        } else {
            listsPanel.add(testList, BorderLayout.WEST);
        }
    });
    frame.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
    frame.addWindowListener(new WindowListener() {

        @Override
        public void windowOpened(WindowEvent e) {
        }

        @Override
        public void windowClosing(WindowEvent e) {
            e.getWindow().dispose();
            Start.show();
        }

        @Override
        public void windowClosed(WindowEvent e) {
        }

        @Override
        public void windowIconified(WindowEvent e) {
        }

        @Override
        public void windowDeiconified(WindowEvent e) {
        }

        @Override
        public void windowActivated(WindowEvent e) {
        }

        @Override
        public void windowDeactivated(WindowEvent e) {
        }
    });
    problemList.addListSelectionListener(e -> selectProblem());
    deleteButton.addActionListener(e -> {
        DatabaseManager db = new DatabaseManager();
        int index = problemList.getSelectedIndex();
        db.deleteProblem(problems[index]);
        problems = db.getProblemsArray();
        db.close();
        problemList = new JList<>(problems);
        problemList.setSelectedIndex(index);
        problemList.addListSelectionListener(a -> selectProblem());
        scrollerPanelProblems.remove(scrollPane);
        scrollPane = new JScrollPane(problemList, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
        scrollerPanelProblems.add(scrollPane, BorderLayout.CENTER);
        scrollerPanelProblems.revalidate();
        frame.repaint();
    });
}

[Buggy Hunk]
listsPanel.add(testList, BorderLayout.WEST);

[Patch]
listsPanel.add(testList);

[Demonstration 2]

[Buggy Method]
private SearchNode searchIterativeDeep(final GamePosition position, final int achievable, final int cutoff, final int ply, final EvalFunction ef, final int efNodeValue, final boolean log) {
    SearchNode node;
    final Board board = position.board();
    final Player player = position.player();
    final Player opponent = player.opponent();
    if (ply == 0) {
        node = SearchNode.valueOf(null, efNodeValue);
    } else {
        SortedMap<Square, MoveData> moves = dynamicSortedLegalMoves(player, board, ef, log);
        if (moves.isEmpty()) {
            if (board.hasAnyLegalMove(opponent)) {
                node = searchIterativeDeep(GamePosition.valueOf(board, opponent), -cutoff, -achievable, ply - 1, ef, -efNodeValue, false).negated();
            } else {
                node = SearchNode.valueOf(null, finalValue(board, player));
            }
        } else {
            node = SearchNode.valueOf(moves.firstKey(), achievable);
            outer: for (Square move : moves.keySet()) {
                int val = searchIterativeDeep(moves.get(move).position(), -cutoff, -node.value(), ply - 1, ef, -moves.get(move).value(), false).negated().value();
                if (val > node.value()) {
                    node = SearchNode.valueOf(move, val);
                }
                if (node.value() >= cutoff) {
                    cutoffCount[ply]++;
                    break outer;
                }
            }
        }
    }
    return node;
}

[Buggy Hunk]
if (node.value() >= cutoff) { cutoffCount[ply]++; break outer; }

[Patch]
if (node.value() >= cutoff) { cutoffCount[ply-1]++; break outer; }

[Demonstration 3]

[Buggy Method]
private void setupButtons(View view) {
    FloatingActionButton fab_form = (FloatingActionButton) view.findViewById(R.id.fab_form);
    fab_form.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {
            Log.e(TAG, "fab_form");
            listener.onMeasurementSend(listener.getCurrentMeasurement());
        }
    });
    FloatingActionButton fab_email = (FloatingActionButton) view.findViewById(R.id.fab_email);
    fab_email.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {
            Log.e(TAG, "fab_email");
            listener.onMeasurementSend(listener.getCurrentMeasurement());
        }
    });
    FloatingActionButton fab_photo = (FloatingActionButton) view.findViewById(R.id.fab_photo);
    fab_photo.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {
            Log.e(TAG, "fab_photo");
            AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
            final EditText nameInput = new EditText(getActivity());
            nameInput.setInputType(InputType.TYPE_CLASS_TEXT);
            nameInput.setHint("Co będzie na zdjęciu?");
            builder.setTitle("Nowe zdjęcie").setCancelable(true).setView(nameInput).setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {

                public void onClick(DialogInterface dialog, int which) {
                    currentPhotoName = nameInput.getText().toString();
                    if (!currentPhotoName.isEmpty()) {
                        Log.e(TAG, "Starting camera for name: " + currentPhotoName);
                        dispatchTakePictureIntent();
                    }
                }
            }).setIcon(android.R.drawable.ic_dialog_info).show();
        }
    });
    FloatingActionButton fab_remove = (FloatingActionButton) view.findViewById(R.id.fab_remove);
    fab_remove.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {
            Log.e(TAG, "fab_remove");
            if (selectedPosition != -1) {
                String msg = "Napewno chcesz usunąc zdjęcie \"" + adapter.getItem(selectedPosition).getName() + "\"?";
                AskDialog.show(getActivity(), "Usuń!", msg, new DialogInterface.OnClickListener() {

                    public void onClick(DialogInterface dialog, int which) {
                        Log.e(TAG, "fab_remove accepted");
                        commandsListener.onPhotoRemove(adapter.getItem(selectedPosition));
                        selectedPosition = -1;
                        reload();
                    }
                });
            } else {
                listener.onMessage("Zaznacz zdjęcie do usunięcia");
            }
        }
    });
}

[Buggy Hunk]
listener.onMeasurementSend(listener.getCurrentMeasurement());

[Patch]
listener.onFormFill(listener.getCurrentMeasurement());