[Demonstration 1]

[Buggy Method]
@SuppressWarnings("unchecked")
@Override
public final void onEnable() {
    Path dataBase = getPath();
    if (Files.isReadable(dataBase) && Files.exists(dataBase)) {
        try {
            ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(Files.readAllBytes(dataBase));
            ObjectInputStream inputStream = new ObjectInputStream(byteArrayInputStream);
            playersFoodLevel = (Map<String, Integer>) inputStream.readObject();
            inputStream.close();
        } catch (IOException | ClassNotFoundException e) {
            getLogger().info("Failed to read database");
        }
    }
    // Registered listener
    Bukkit.getPluginManager().registerEvents(this, this);
}

[Buggy Hunk]
Bukkit.getPluginManager().registerEvents(this, this);

[Patch]
Bukkit.getPluginManager().registerEvents(new EventListener(), this);

[Demonstration 2]

[Buggy Method]
@Override
public void onClick(View view) {
    //signIn();
    String email = emailField.getText().toString();
    String password = passwordField.getText().toString();
    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
    if (TextUtils.isEmpty(email) && TextUtils.isEmpty(password)) {
        builder.setMessage(R.string.error_sign_in).setTitle(R.string.app_name).setCancelable(false).setPositiveButton("OK", new DialogInterface.OnClickListener() {

            public void onClick(DialogInterface dialog, int id) {
                //do things
            }
        });
        AlertDialog dialogInfo = builder.create();
        dialogInfo.show();
    } else if (password.length() < 5) {
        builder.setMessage(R.string.error_pass_too_short).setTitle(R.string.app_name).setCancelable(false).setPositiveButton("OK", new DialogInterface.OnClickListener() {

            public void onClick(DialogInterface dialog, int id) {
                //do things
            }
        });
        AlertDialog dialogInfo = builder.create();
        dialogInfo.show();
    } else if (!email.contains("@")) {
        builder.setMessage(R.string.error_invalid_email).setTitle(R.string.app_name).setCancelable(false).setPositiveButton("OK", new DialogInterface.OnClickListener() {

            public void onClick(DialogInterface dialog, int id) {
                //do things
            }
        });
        AlertDialog dialogInfo = builder.create();
        dialogInfo.show();
    } else {
        final ProgressDialog dialog = ProgressDialog.show(getActivity(), "", getString(R.string.loader), true);
        Notificare.shared().userLogin(email, password, new NotificareCallback<Boolean>() {

            @Override
            public void onError(NotificareError error) {
                dialog.dismiss();
                AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
                builder.setMessage(R.string.error_sign_in).setTitle(R.string.app_name).setCancelable(false).setPositiveButton("OK", new DialogInterface.OnClickListener() {

                    public void onClick(DialogInterface dialog, int id) {
                        //do things
                    }
                });
                AlertDialog dialogInfo = builder.create();
                dialogInfo.show();
                passwordField.setText(null);
            }

            @Override
            public void onSuccess(Boolean result) {
                Notificare.shared().fetchUserDetails(new NotificareCallback<NotificareUser>() {

                    @Override
                    public void onError(NotificareError error) {
                        dialog.dismiss();
                        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
                        builder.setMessage(R.string.error_sign_in).setTitle(R.string.app_name).setCancelable(false).setPositiveButton("OK", new DialogInterface.OnClickListener() {

                            public void onClick(DialogInterface dialog, int id) {
                                //do things
                            }
                        });
                        AlertDialog dialogInfo = builder.create();
                        dialogInfo.show();
                        passwordField.setText(null);
                    }

                    @Override
                    public void onSuccess(NotificareUser user) {
                        emailField.setText(null);
                        passwordField.setText(null);
                        if (user.getAccessToken().isEmpty()) {
                            Notificare.shared().generateAccessToken(new NotificareCallback<NotificareUser>() {

                                @Override
                                public void onSuccess(NotificareUser notificareUser) {
                                    finishSignIn(notificareUser);
                                    dialog.dismiss();
                                }

                                @Override
                                public void onError(NotificareError notificareError) {
                                    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
                                    builder.setMessage(R.string.error_sign_in).setTitle(R.string.app_name).setCancelable(false).setPositiveButton("OK", new DialogInterface.OnClickListener() {

                                        public void onClick(DialogInterface dialog, int id) {
                                            //do things
                                        }
                                    });
                                    AlertDialog dialogInfo = builder.create();
                                    dialogInfo.show();
                                }
                            });
                        } else {
                            finishSignIn(user);
                            dialog.dismiss();
                        }
                    }
                });
            }
        });
    }
}

[Buggy Hunk]
if (user.getAccessToken().isEmpty()) {

[Patch]
if (user != null && (user.getAccessToken() == null || user.getAccessToken().isEmpty())) {

[Demonstration 3]

[Buggy Method]
private void validateStudentNumber(final AbstractScholarshipStudentBean bean, final Registration registration) {
    if (registration.getNumber().intValue() != bean.getStudentNumber().intValue()) {
        addWarning(bean, "O número de aluno indicado no ficheiro de entrada não corresponde ao número de aluno no sistema.");
    }
}

[Buggy Hunk]
if (registration.getNumber().intValue() != bean.getStudentNumber().intValue()) {

[Patch]
if (bean.getStudentNumber() != null && registration.getNumber().intValue() != bean.getStudentNumber().intValue()) {