[Demonstration 1]

[Buggy Method]
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    Log.d(TAG, "onActivityResult: ");
    if (requestCode == SPEECH_API_CHECK) {
        if (resultCode == TextToSpeech.Engine.CHECK_VOICE_DATA_PASS) {
            // success, create the TTS instance
            mTts = new TextToSpeech(getApplicationContext(), new TextToSpeech.OnInitListener() {

                @Override
                public void onInit(int i) {
                    if (i == TextToSpeech.SUCCESS) {
                        int result = mTts.setLanguage(Locale.getDefault());
                        if (result == TextToSpeech.LANG_MISSING_DATA || result == TextToSpeech.LANG_NOT_SUPPORTED) {
                            Log.e("TTS", "This Language is not supported");
                        } else {
                            Log.d(TAG, "onInit: ok");
                        }
                    } else {
                        // Initialization failed.
                        Log.e("app", "Could not initialize TextToSpeech.");
                    }
                }
            });
            mTts.speak("ABC", TextToSpeech.QUEUE_FLUSH, null);
        } else {
            // missing data, install it
            Intent installIntent = new Intent();
            installIntent.setAction(TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA);
            startActivity(installIntent);
        }
    }
}

[Buggy Hunk]
int result = mTts.setLanguage(Locale.getDefault());

[Patch]
int result = mTts.setLanguage(Locale.US);

[Demonstration 2]

[Buggy Method]
private void invokeCallbackOnceCompletedOrCanceled(final Object job) {
    threadPool.execute(new Runnable() {

        @Override
        public void run() {
            for (; ; ) {
                try {
                    Method isCancelled = job.getClass().getMethod("isCancelled");
                    Method isCompleted = job.getClass().getMethod("isCompleted");
                    Method isFailed = job.getClass().getMethod("isFailed");
                    Boolean cancelled = (Boolean) isCancelled.invoke(job);
                    Boolean completed = (Boolean) isCompleted.invoke(job);
                    Boolean failed = (Boolean) isFailed.invoke(job);
                    if (cancelled || completed || failed) {
                        command.success();
                        break;
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
    });
}

[Buggy Hunk]
threadPool.execute(new Runnable() {

[Patch]
printer.cordova.getThreadPool().execute(new Runnable() {

[Demonstration 3]

[Buggy Method]
private void addTodoToCrontab(Task t) {
    if (t.getEnd() != null && t.getEnd().after(new Date())) {
        // TODO: Add to alarm
        try {
            logger.info("Alarm add " + t);
            IWScheduler sch = new WSchedulerSimple(t.getEnd(), t.getMessage().getTitle(), "alarm");
            sch.setOnFinish(e -> {
                Platform.runLater(new Runnable() {

                    @Override
                    public void run() {
                        new WNotification("Alarm", t.getMessage().getTitle()).show();
                    }
                });
            });
            sch.start();
        } catch (SchedulerException e) {
            e.printStackTrace();
        }
    } else {
        logger.info("Alarm ignore " + t);
    }
}

[Buggy Hunk]
private void addTodoToCrontab(Task t) {

[Patch]
public static void addTodoToCrontab(Task t) {