[Demonstration 1]

[Buggy Method]
private void initView() {
    LayoutInflater.from(mContext).inflate((R.layout.search_view), this, true);
    setVisibility(View.INVISIBLE);
    SearchLinearLayoutManager layoutManager = new SearchLinearLayoutManager(mContext, SearchLinearLayoutManager.VERTICAL, false);
    layoutManager.clearChildSize();
    layoutManager.setChildSize(getResources().getDimensionPixelSize(R.dimen.search_item_height));
    mSuggestionsRecyclerView = (RecyclerView) findViewById(R.id.recyclerView);
    mSuggestionsRecyclerView.setLayoutManager(layoutManager);
    //mSuggestionsRecyclerView.setHasFixedSize(true);
    mSuggestionsRecyclerView.setItemAnimator(new DefaultItemAnimator());
    mSuggestionsRecyclerView.setVisibility(View.GONE);
    mCardView = (CardView) findViewById(R.id.cardView);
    mCardView.setVisibility(View.INVISIBLE);
    mSearchEditText = (EditText) findViewById(R.id.editText_input);
    mSearchEditText.setOnClickListener(mOnClickListener);
    mBackImageView = (ImageView) findViewById(R.id.imageView_arrow_back);
    mBackImageView.setOnClickListener(mOnClickListener);
    mVoiceImageView = (ImageView) findViewById(R.id.imageView_mic);
    mVoiceImageView.setOnClickListener(mOnClickListener);
    mEmptyImageView = (ImageView) findViewById(R.id.imageView_clear);
    mEmptyImageView.setOnClickListener(mOnClickListener);
    mTintView = findViewById(R.id.view_transparent);
    mTintView.setOnClickListener(mOnClickListener);
    mSeparatorView = findViewById(R.id.view_separator);
    mSeparatorView.setVisibility(View.GONE);
    allowVoiceSearch = false;
    showVoice(true);
    initSearchView();
}

[Buggy Hunk]
setVisibility(View.INVISIBLE);

[Patch]
setVisibility(View.GONE);

[Demonstration 2]

[Buggy Method]
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    RichFontTextView textView = (RichFontTextView) findViewById(R.id.text);
    textView.setText(" ad<font size='80' line='under|del' style='b'  background='#EED5B7'>hello</font>  default font <font color='#FF0000' size='60'>ooo</font>");
}

[Buggy Hunk]
textView.setText(" ad<font size='80' line='under|del' style='b'  background='#EED5B7'>hello</font>  default font <font color='#FF0000' size='60'>ooo</font>");

[Patch]
textView.setRichText(" ad<font size='80' line='under|del' style='b'  background='#EED5B7'>hello</font>  default font <font color='#FF0000' size='60'>ooo</font>");

[Demonstration 3]

[Buggy Method]
private void startDataReport(final MemeLib memeLib, final CallbackContext callbackContext) {
    mDataReportCallback = callbackContext;
    MemeStatus status = memeLib.startDataReport(new MemeRealtimeListener() {

        @Override
        public void memeRealtimeCallback(final MemeRealtimeData memeRealtimeData) {
            if (cordova.getActivity() == null) {
                return false;
            }
            cordova.getActivity().runOnUiThread(new Runnable() {

                @Override
                public void run() {
                    if (mIsRunning && isAvailable(mDataReportCallback)) {
                        try {
                            PluginResult result = new PluginResult(PluginResult.Status.OK, Message.convertToJSONObject(memeRealtimeData));
                            result.setKeepCallback(true);
                            mDataReportCallback.sendPluginResult(result);
                        } catch (JSONException e) {
                            e.printStackTrace();
                        }
                    }
                }
            });
        }
    });
    if (MemeStatus.MEME_OK != status) {
        debug("Failed to start data report: " + status);
        mDataReportCallback = null;
        callbackContext.error(Message.getError(status));
    }
}

[Buggy Hunk]
if(cordova.getActivity() == null) {

[Patch]
if(!cordova.getActivity()) {