[Demonstration 1]

[Buggy Method]
public Subscription setDataListener(final HttpResponse httpResponse) {
    String network_unusual = MessageManager.getMessageManager().isUseEnglishLanguage() ? "Network  unusual" : "网络不可用";
    final String network_error = MessageManager.getMessageManager().isUseEnglishLanguage() ? "Network  error" : MessageManager.getMessageManager().getErrorMessage();
    if (!NetworkUtil.isNetworkAvailable(context.get())) {
        Toast.makeText(context.get(), network_unusual, Toast.LENGTH_SHORT).show();
        if (httpResponse != null) {
            httpResponse.netOnFailure(new Exception(network_unusual));
            httpResponse.netOnFinish();
        }
        return null;
    }
    if (isShowLoadingDialog) {
        if (loadingDialog == null) {
            loadingDialog = new LoadingDialog(context.get());
        }
    } else {
        loadingDialog = null;
    }
    Subscription subscribe = observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Subscriber<ResponseBody>() {

        @Override
        public void onStart() {
            if (loadingDialog != null) {
                loadingDialog.show();
            }
            if (httpResponse != null) {
                httpResponse.netOnStart();
            }
        }

        @Override
        public void onCompleted() {
            if (loadingDialog != null) {
                loadingDialog.dismiss();
            }
            if (httpResponse != null) {
                httpResponse.netOnFinish();
            }
        }

        @Override
        public void onError(Throwable e) {
            e.printStackTrace();
            Toast.makeText(context.get(), network_error, Toast.LENGTH_SHORT).show();
            if (httpResponse != null) {
                httpResponse.netOnFailure(e);
            }
            onCompleted();
        }

        @Override
        public void onNext(ResponseBody result) {
            ArrayMap<String, Object> jsonBean;
            try {
                jsonBean = JsonParse.getJsonParse().jsonParse(result.string());
                String msg = JsonParse.getString(jsonBean, JsonParse.getJsonParse().getMsg());
                int code = Integer.parseInt(JsonParse.getString(jsonBean, JsonParse.getJsonParse().getCode()));
                if (MessageManager.getMessageManager().getShowMessageModel() == MessageManager.MessageModel.All && isShowSuccessMessage) {
                    if (msg != null && !msg.isEmpty() && !"null".equalsIgnoreCase(msg)) {
                        Toast.makeText(context.get(), msg, Toast.LENGTH_SHORT).show();
                    }
                }
                if (code == JsonParse.getJsonParse().getSuccessCode()) {
                    Map<String, Object> data = (Map<String, Object>) jsonBean.get(JsonParse.getJsonParse().getData());
                    if (httpResponse != null) {
                        httpResponse.netOnSuccess(data);
                    }
                } else {
                    if (MessageManager.getMessageManager().getShowMessageModel() == MessageManager.MessageModel.OTHER_STATUS && isShowOtherStatusMessage) {
                        if (msg != null && !msg.isEmpty() && !"null".equalsIgnoreCase(msg)) {
                            Toast.makeText(context.get(), msg, Toast.LENGTH_SHORT).show();
                        }
                    }
                    if (httpResponse != null) {
                        httpResponse.netOnOtherStatus(code, msg);
                    }
                }
            } catch (Exception e) {
                if (MessageManager.getMessageManager().getShowMessageModel() != MessageManager.MessageModel.NO) {
                    Toast.makeText(context.get(), network_error, Toast.LENGTH_SHORT).show();
                }
                if (httpResponse != null) {
                    httpResponse.netOnFailure(e);
                }
                e.printStackTrace();
            }
        }
    });
    if (loadingDialog != null && subscribe != null) {
        loadingDialog.setOnKeyListener(new DialogOnKeyListener(loadingDialog, subscribe));
    }
    return subscribe;
}

[Buggy Hunk]
if (loadingDialog != null && subscribe != null) {

[Patch]
if (loadingDialog != null && subscribe != null&&canCancel) {

[Demonstration 2]

[Buggy Method]
@Override
public void onError(MicroService service, Exception e) {
    Log.e(LOG_TAG, "Error occurred within MicroService");
    Bundle bundle = new Bundle();
    bundle.putString(EXCEPTION, String.valueOf(e));
    Message msg = new Message();
    msg.setData(bundle);
    try {
        messenger.send(msg);
    } catch (RemoteException e1) {
        e1.printStackTrace();
    }
}

[Buggy Hunk]
Message msg = new Message();

[Patch]
Message msg = Message.obtain(null, FAILED_EXECUTING_CODE);

[Demonstration 3]

[Buggy Method]
private void prcSetSwipeRefresh() {
    mSwipeRefreshLayout.setColorSchemeColors(ContextCompat.getColor(mContext, R.color.red));
    mSwipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {

        @Override
        public void onRefresh() {
            if (UNetwork.isOnline(mContext)) {
                prcWebGetGeners();
            } else {
                prcCleanError(mContext.getString(R.string.error_network));
            }
        }
    });
}

[Buggy Hunk]
mSwipeRefreshLayout.setColorSchemeColors(ContextCompat.getColor(mContext, R.color.red));

[Patch]
mSwipeRefreshLayout.setColorSchemeColors(ContextCompat.getColor(mContext, R.color.colorPrimary));