[Demonstration 1]

[Buggy Method]
private void addPackage() {
    // hide keyboard
    hideSoftKeyboard();
    // check if package already exists
    Package aPackage = viewModel.packageForTrackingNumber(binding.editTextTrackingNumber.getText().toString(), courier);
    if (aPackage != null) {
        if (aPackage.getArchived()) {
            // if archived ask the user if he/she wants it to unarchive
            new AlertDialog.Builder(getActivity()).setTitle("Hey!").setMessage("This package has already been archived! Would you like to unarchive this package?").setPositiveButton(android.R.string.yes, (dialog, which) -> {
                // unarchive
                viewModel.unarchivePackage(aPackage);
                // pop to root
                getFragmentManager().popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);
            }).setNegativeButton(android.R.string.cancel, null).setIcon(android.R.drawable.ic_dialog_alert).show();
        } else {
            // show alert that this package already exists!
            new AlertDialog.Builder(getActivity()).setTitle("Hey!").setMessage("This package already exists!").setPositiveButton("OK", null).setIcon(android.R.drawable.ic_dialog_alert).show();
        }
        return;
    }
    // else we add this new package!
    // if jrs we need to append the extra code
    String trackingNumber = binding.editTextTrackingNumber.getText().toString();
    if (courier.getCode().equals("jrs")) {
        trackingNumber += "-" + binding.editTextExtraCode.getText().toString();
    }
    // show progress dialog
    ProgressDialog dialog = ProgressDialog.show(getActivity(), null, "Tracking package...");
    viewModel.addPackage(trackingNumber, binding.editTextName.getText().toString(), courier).subscribe(new Subscriber<ReplaySubject<Package>>() {

        @Override
        public void onCompleted() {
        }

        @Override
        public void onError(Throwable e) {
            dialog.dismiss();
            // show error
            new AlertDialog.Builder(getActivity()).setTitle("Sorry!").setMessage("Tracking number is invalid! Please check your tracking number.").setPositiveButton("OK", null).setIcon(android.R.drawable.ic_dialog_alert).show();
        }

        @Override
        public void onNext(ReplaySubject<Package> packageReplaySubject) {
            // track mixpanel
            try {
                JSONObject props = new JSONObject();
                props.put("Courier", courier.getName());
                MixpanelHelper.getMixpanel(getActivity()).track("Added Package", props);
            } catch (JSONException e) {
                e.printStackTrace();
            }
            dialog.dismiss();
            if (interstitialAd.isLoaded())
                interstitialAd.show();
            showPackageDetails(packageReplaySubject);
        }
    });
}

[Buggy Hunk]
if (interstitialAd.isLoaded()) interstitialAd.show();

[Patch]
showInterstitialAd();

[Demonstration 2]

[Buggy Method]
@Override
public void update() {
    if (worldObj.isRemote)
        return;
    if (active()) {
        energy += 40;
        this.markDirty();
        worldObj.markBlockForUpdate(pos);
    }
}

[Buggy Hunk]
if(active()){

[Patch]
if(isActive()){

[Demonstration 3]

[Buggy Method]
public void process(Time time) {
    if (start.equal(time)) {
        if (this.taskDone) {
            return;
        }
        this.active = true;
        this.execute();
        Log.info("Start task \"" + this.getId() + "\" at " + time);
    } else if (end.equal(time) && this.active) {
        if (this.taskDone) {
            return;
        }
        this.active = false;
        this.execute();
        Log.info("End task \"" + this.getId() + "\" at " + time);
    } else {
        if (this.taskDone) {
            this.taskDone = false;
        }
    }
}

[Buggy Hunk]
} else if(end.equal(time) && this.active) {

[Patch]
} else if(end.equal(time)) {