[Demonstration 1]

[Buggy Method]
@SuppressWarnings("deprecation")
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
    if (mWeiboList == null || mWeiboList.isEmpty()) {
        return;
    }
    final Weibo weibo = mWeiboList.get(position);
    // 发送时间
    String pattern = "E MMM dd HH:mm:ss Z yyyy";
    String dateStr = TimeUtils.getDate(weibo.getCreatedAt(), pattern);
    holder.setPostTime(dateStr);
    // 微博内容
    String content = weibo.getText();
    holder.setContent(content);
    // 微博转发内容
    Weibo repostWeibo = weibo.getRepostWeibo();
    holder.setRepostContent(repostWeibo);
    // 转发数
    long repostCount = weibo.getRepostsCount();
    holder.setRepostNumber(repostCount);
    // 评论数
    long commentCount = weibo.getCommentsCount();
    holder.setReplyNumber(commentCount);
    // 点赞数
    long likeCount = weibo.getAttitudesCount();
    holder.setLikeNumber(likeCount);
    // 发送来源
    String source = weibo.getSource();
    if (!TextUtils.isEmpty(source)) {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
            holder.setPostSource(Html.fromHtml(source, Html.FROM_HTML_MODE_LEGACY));
        } else {
            holder.setPostSource(Html.fromHtml(source));
        }
    }
    // 用户信息
    setUserInfo(holder, weibo.getUser());
    // 多媒体消息
    String media = weibo.getBmiddlePic();
    boolean isMultiImages = weibo.getPicUrls().size() > 1;
    holder.setMediaContent(mContext, media, isMultiImages);
    ArrayList<ThumbUrl> imgUrlList = new ArrayList<>();
    if (isMultiImages) {
        imgUrlList = (ArrayList<ThumbUrl>) weibo.getPicUrls();
    } else {
        final String imgUrl = weibo.getOriginalPic();
        ThumbUrl thumbUrl = new ThumbUrl(imgUrl);
        imgUrlList.add(thumbUrl);
    }
    final Intent intent = new Intent(mContext, WeiboImageActivity.class);
    intent.putExtra(WeiboImageActivity.EXTRA_IMAGE_LIST, imgUrlList);
    holder.mMediaView.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            mContext.startActivity(intent);
        }
    });
    holder.itemView.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            goWeiboDetail(mContext, weibo);
        }
    });
}

[Buggy Hunk]
holder.setRepostContent(repostWeibo);

[Patch]
holder.setRepostContent(mContext, repostWeibo);

[Demonstration 2]

[Buggy Method]
@Override
@NonNull
public TinyPlugz deploy() {
    validateProperties();
    synchronized (DEPLOY_LOCK) {
        // additional synchronized check is required here
        Require.state(!TinyPlugz.isDeployed(), "TinyPlugz already deployed");
        final TinyPlugz impl = getInstance();
        LOG.debug("Using '{}' TinyPlugz implementation", impl.getClass().getName());
        final PluginSource pluginSource = buildSource();
        impl.initialize(pluginSource, this.parentCl, Collections.unmodifiableMap(this.properties));
        TinyPlugz.deploy(impl);
        notifyListeners(impl);
        return impl;
    }
}

[Buggy Hunk]
public @NonNull TinyPlugz deploy() {

[Patch]
public TinyPlugz deploy() {

[Demonstration 3]

[Buggy Method]
@Override
public List<ProgramTable> call() throws Exception {
    return impl.invoke(station.getName(), date);
}

[Buggy Hunk]
return impl.invoke(station.getName(), date);

[Patch]
return crawlProgramTable(station.getName(), date);