Program: 14957
Project: 14957
Buggy source:
public static ReaderPost fromJson(JSONObject json){
  if (json == null)   throw new IllegalArgumentException("String_Node_Str");
  ReaderPost post=new ReaderPost();
  post.postId=json.optLong("String_Node_Str");
  post.blogId=json.optLong("String_Node_Str");
  post.pseudoId=JSONUtil.getString(json,"String_Node_Str");
  post.excerpt=HtmlUtils.fastStripHtml(JSONUtil.getString(json,"String_Node_Str"));
  post.text=JSONUtil.getString(json,"String_Node_Str");
  post.title=JSONUtil.getStringDecoded(json,"String_Node_Str");
  post.url=JSONUtil.getString(json,"String_Node_Str");
  post.blogUrl=JSONUtil.getString(json,"String_Node_Str");
  post.numReplies=json.optInt("String_Node_Str");
  post.numLikes=json.optInt("String_Node_Str");
  post.isLikedByCurrentUser=JSONUtil.getBool(json,"String_Node_Str");
  post.isFollowedByCurrentUser=JSONUtil.getBool(json,"String_Node_Str");
  post.isRebloggedByCurrentUser=JSONUtil.getBool(json,"String_Node_Str");
  post.isCommentsOpen=JSONUtil.getBool(json,"String_Node_Str");
  post.isExternal=JSONUtil.getBool(json,"String_Node_Str");
  post.isPrivate=JSONUtil.getBool(json,"String_Node_Str");
  post.published=JSONUtil.getString(json,"String_Node_Str");
  JSONObject jsonAuthor=json.optJSONObject("String_Node_Str");
  if (jsonAuthor != null) {
    post.authorName=JSONUtil.getString(jsonAuthor,"String_Node_Str");
    post.postAvatar=JSONUtil.getString(jsonAuthor,"String_Node_Str");
  }
  final String dateForTimestamp;
  JSONObject jsonEditorial=json.optJSONObject("String_Node_Str");
  if (jsonEditorial != null) {
    post.blogId=jsonEditorial.optLong("String_Node_Str");
    post.blogName=JSONUtil.getStringDecoded(jsonEditorial,"String_Node_Str");
    post.featuredImage=getImageUrlFromFeaturedImageUrl(JSONUtil.getString(jsonEditorial,"String_Node_Str"));
    dateForTimestamp=JSONUtil.getString(jsonEditorial,"String_Node_Str");
  }
 else {
    post.featuredImage=JSONUtil.getString(json,"String_Node_Str");
    post.blogName=JSONUtil.getStringDecoded(json,"String_Node_Str");
    String likeDate=JSONUtil.getString(json,"String_Node_Str");
    if (!TextUtils.isEmpty(likeDate)) {
      dateForTimestamp=likeDate;
    }
 else {
      dateForTimestamp=post.published;
    }
  }
  post.timestamp=DateTimeUtils.iso8601ToTimestamp(dateForTimestamp);
  JSONObject jsonAttachments=json.optJSONObject("String_Node_Str");
  if (jsonAttachments != null) {
    Iterator<String> it=jsonAttachments.keys();
    if (it != null && it.hasNext()) {
      JSONObject jsonFirstAttachment=jsonAttachments.optJSONObject(it.next());
      if (jsonFirstAttachment != null) {
        String thumbnail=JSONUtil.getString(jsonFirstAttachment,"String_Node_Str");
        if (!TextUtils.isEmpty(thumbnail))         post.featuredImage=thumbnail;
        JSONObject jsonVideoPress=jsonFirstAttachment.optJSONObject("String_Node_Str");
        if (jsonVideoPress != null) {
          JSONObject jsonStdVideo=jsonVideoPress.optJSONObject("String_Node_Str");
          if (jsonStdVideo != null) {
            post.featuredVideo=JSONUtil.getString(jsonStdVideo,"String_Node_Str");
            post.isVideoPress=true;
          }
        }
      }
    }
  }
  if (!post.hasFeaturedImage()) {
    JSONObject jsonMedia=json.optJSONObject("String_Node_Str");
    if (jsonMedia != null) {
      String mediaUrl=JSONUtil.getString(jsonMedia,"String_Node_Str");
      String type=JSONUtil.getString(jsonMedia,"String_Node_Str");
      boolean isVideo=(type != null && type.equals("String_Node_Str"));
      if (isVideo) {
        post.featuredVideo=mediaUrl;
      }
 else {
        post.featuredImage=mediaUrl;
      }
    }
    if (!post.hasFeaturedImage() && post.isWP())     post.featuredImage=findFeaturedImage(post.text);
  }
  if (!post.hasTitle() && post.hasExcerpt())   post.title=extractTitle(post.excerpt,50);
  return post;
}

Fixed version (ground truth):
public static ReaderPost fromJson(JSONObject json){
  if (json == null)   throw new IllegalArgumentException("String_Node_Str");
  ReaderPost post=new ReaderPost();
  post.postId=json.optLong("String_Node_Str");
  post.blogId=json.optLong("String_Node_Str");
  post.pseudoId=JSONUtil.getString(json,"String_Node_Str");
  post.excerpt=HtmlUtils.fastStripHtml(JSONUtil.getString(json,"String_Node_Str"));
  post.text=JSONUtil.getString(json,"String_Node_Str");
  post.title=JSONUtil.getStringDecoded(json,"String_Node_Str");
  post.url=JSONUtil.getString(json,"String_Node_Str");
  post.blogUrl=JSONUtil.getString(json,"String_Node_Str");
  post.numReplies=json.optInt("String_Node_Str");
  post.numLikes=json.optInt("String_Node_Str");
  post.isLikedByCurrentUser=JSONUtil.getBool(json,"String_Node_Str");
  post.isFollowedByCurrentUser=JSONUtil.getBool(json,"String_Node_Str");
  post.isRebloggedByCurrentUser=JSONUtil.getBool(json,"String_Node_Str");
  post.isCommentsOpen=JSONUtil.getBool(json,"String_Node_Str");
  post.isExternal=JSONUtil.getBool(json,"String_Node_Str");
  post.isPrivate=JSONUtil.getBool(json,"String_Node_Str");
  JSONObject jsonAuthor=json.optJSONObject("String_Node_Str");
  if (jsonAuthor != null) {
    post.authorName=JSONUtil.getString(jsonAuthor,"String_Node_Str");
    post.postAvatar=JSONUtil.getString(jsonAuthor,"String_Node_Str");
  }
  JSONObject jsonEditorial=json.optJSONObject("String_Node_Str");
  if (jsonEditorial != null) {
    post.blogId=jsonEditorial.optLong("String_Node_Str");
    post.blogName=JSONUtil.getStringDecoded(jsonEditorial,"String_Node_Str");
    post.featuredImage=getImageUrlFromFeaturedImageUrl(JSONUtil.getString(jsonEditorial,"String_Node_Str"));
    post.published=JSONUtil.getString(jsonEditorial,"String_Node_Str");
  }
 else {
    post.featuredImage=JSONUtil.getString(json,"String_Node_Str");
    post.blogName=JSONUtil.getStringDecoded(json,"String_Node_Str");
    post.published=JSONUtil.getString(json,"String_Node_Str");
  }
  String likeDate=JSONUtil.getString(json,"String_Node_Str");
  if (!TextUtils.isEmpty(likeDate)) {
    post.timestamp=DateTimeUtils.iso8601ToTimestamp(likeDate);
  }
 else {
    post.timestamp=DateTimeUtils.iso8601ToTimestamp(post.published);
  }
  JSONObject jsonAttachments=json.optJSONObject("String_Node_Str");
  if (jsonAttachments != null) {
    Iterator<String> it=jsonAttachments.keys();
    if (it != null && it.hasNext()) {
      JSONObject jsonFirstAttachment=jsonAttachments.optJSONObject(it.next());
      if (jsonFirstAttachment != null) {
        String thumbnail=JSONUtil.getString(jsonFirstAttachment,"String_Node_Str");
        if (!TextUtils.isEmpty(thumbnail))         post.featuredImage=thumbnail;
        JSONObject jsonVideoPress=jsonFirstAttachment.optJSONObject("String_Node_Str");
        if (jsonVideoPress != null) {
          JSONObject jsonStdVideo=jsonVideoPress.optJSONObject("String_Node_Str");
          if (jsonStdVideo != null) {
            post.featuredVideo=JSONUtil.getString(jsonStdVideo,"String_Node_Str");
            post.isVideoPress=true;
          }
        }
      }
    }
  }
  if (!post.hasFeaturedImage()) {
    JSONObject jsonMedia=json.optJSONObject("String_Node_Str");
    if (jsonMedia != null) {
      String mediaUrl=JSONUtil.getString(jsonMedia,"String_Node_Str");
      String type=JSONUtil.getString(jsonMedia,"String_Node_Str");
      boolean isVideo=(type != null && type.equals("String_Node_Str"));
      if (isVideo) {
        post.featuredVideo=mediaUrl;
      }
 else {
        post.featuredImage=mediaUrl;
      }
    }
    if (!post.hasFeaturedImage() && post.isWP())     post.featuredImage=findFeaturedImage(post.text);
  }
  if (!post.hasTitle() && post.hasExcerpt())   post.title=extractTitle(post.excerpt,50);
  return post;
}