Program: 14916
Project: 14916
Buggy source:
@SuppressWarnings("String_Node_Str") protected void moderateComments(CommentStatus newStatus){
  final String newStatusStr=CommentStatus.toString(newStatus);
  final Blog blog=WordPress.currentBlog;
  Iterator it=selectedCommentPositions.iterator();
  final List<Comment> commentsUpdatedList=new LinkedList<Comment>();
  while (it.hasNext()) {
    int i=(Integer)it.next();
    client=new XMLRPCClient(blog.getUrl(),blog.getHttpuser(),blog.getHttppassword());
    Comment listRow=(Comment)getListView().getItemAtPosition(i);
    int curCommentID=listRow.commentID;
    Map<String,String> contentHash, postHash=new HashMap<String,String>();
    contentHash=(Map<String,String>)allComments.get(curCommentID);
    if (contentHash.get("String_Node_Str").equals(newStatusStr)) {
      it.remove();
      continue;
    }
    postHash.put("String_Node_Str",newStatusStr);
    postHash.put("String_Node_Str",contentHash.get("String_Node_Str"));
    postHash.put("String_Node_Str",contentHash.get("String_Node_Str"));
    postHash.put("String_Node_Str",contentHash.get("String_Node_Str"));
    postHash.put("String_Node_Str",contentHash.get("String_Node_Str"));
    Object[] params={blog.getRemoteBlogId(),blog.getUsername(),blog.getPassword(),curCommentID,postHash};
    Object result;
    try {
      result=client.call("String_Node_Str",params);
      boolean bResult=Boolean.parseBoolean(result.toString());
      if (bResult) {
        it.remove();
        listRow.setStatus(newStatusStr);
        contentHash.put("String_Node_Str",newStatusStr);
        model.set(i,listRow);
        WordPress.wpDB.updateCommentStatus(WordPress.currentBlog.getLocalTableBlogId(),listRow.commentID,newStatusStr);
        commentsUpdatedList.add(WordPress.wpDB.getComment(WordPress.currentBlog.getLocalTableBlogId(),listRow.commentID));
      }
    }
 catch (    XMLRPCException e) {
      moderateErrorMsg=getResources().getText(R.string.error_moderate_comment).toString();
    }
  }
  dismissDialog(ID_DIALOG_MODERATING);
  Thread action=new Thread(){
    public void run(){
      if (moderateErrorMsg == "String_Node_Str") {
        String msg=getResources().getText(R.string.comment_moderated).toString();
        if (checkedCommentTotal > 1)         msg=getResources().getText(R.string.comments_moderated).toString();
        Toast.makeText(getActivity().getApplicationContext(),msg,Toast.LENGTH_SHORT).show();
        checkedCommentTotal=0;
        hideModerationBar();
        mOnCommentChangeListener.onCommentsModerated(commentsUpdatedList);
        ((WPActionBarActivity)getActivity()).updateMenuDrawer();
      }
 else {
        if (!getActivity().isFinishing()) {
          checkedCommentTotal=0;
          hideModerationBar();
          getListView().invalidateViews();
          FragmentTransaction ft=getFragmentManager().beginTransaction();
          WPAlertDialogFragment alert=WPAlertDialogFragment.newInstance(moderateErrorMsg);
          alert.show(ft,"String_Node_Str");
        }
        moderateErrorMsg="String_Node_Str";
      }
    }
  }
;
  getActivity().runOnUiThread(action);
  progressDialog=new ProgressDialog(getActivity().getApplicationContext());
}

Fixed version (ground truth):
@SuppressWarnings("String_Node_Str") protected void moderateComments(CommentStatus newStatus){
  final String newStatusStr=CommentStatus.toString(newStatus);
  final Blog blog=WordPress.currentBlog;
  Iterator it=selectedCommentPositions.iterator();
  final List<Comment> commentsUpdatedList=new LinkedList<Comment>();
  while (it.hasNext()) {
    int i=(Integer)it.next();
    client=new XMLRPCClient(blog.getUrl(),blog.getHttpuser(),blog.getHttppassword());
    Comment listRow=(Comment)getListView().getItemAtPosition(i);
    int curCommentID=listRow.commentID;
    Map<String,String> contentHash, postHash=new HashMap<String,String>();
    contentHash=(Map<String,String>)allComments.get(curCommentID);
    if (contentHash.get("String_Node_Str").equals(newStatusStr)) {
      it.remove();
      continue;
    }
    postHash.put("String_Node_Str",newStatusStr);
    postHash.put("String_Node_Str",contentHash.get("String_Node_Str"));
    postHash.put("String_Node_Str",contentHash.get("String_Node_Str"));
    postHash.put("String_Node_Str",contentHash.get("String_Node_Str"));
    postHash.put("String_Node_Str",contentHash.get("String_Node_Str"));
    Object[] params={blog.getRemoteBlogId(),blog.getUsername(),blog.getPassword(),curCommentID,postHash};
    Object result;
    try {
      result=client.call("String_Node_Str",params);
      boolean bResult=Boolean.parseBoolean(result.toString());
      if (bResult) {
        it.remove();
        listRow.setStatus(newStatusStr);
        contentHash.put("String_Node_Str",newStatusStr);
        model.set(i,listRow);
        WordPress.wpDB.updateCommentStatus(WordPress.currentBlog.getLocalTableBlogId(),listRow.commentID,newStatusStr);
        commentsUpdatedList.add(WordPress.wpDB.getComment(WordPress.currentBlog.getLocalTableBlogId(),listRow.commentID));
      }
    }
 catch (    XMLRPCException e) {
      moderateErrorMsg=getResources().getText(R.string.error_moderate_comment).toString();
    }
  }
  dismissDialog(ID_DIALOG_MODERATING);
  Thread action=new Thread(){
    public void run(){
      if (moderateErrorMsg == "String_Node_Str") {
        String msg=getResources().getText(R.string.comment_moderated).toString();
        if (checkedCommentTotal > 1)         msg=getResources().getText(R.string.comments_moderated).toString();
        Toast.makeText(getActivity().getApplicationContext(),msg,Toast.LENGTH_SHORT).show();
        checkedCommentTotal=0;
        hideModerationBar();
        mOnCommentChangeListener.onCommentsModerated(commentsUpdatedList);
        ((WPActionBarActivity)getActivity()).updateMenuDrawer();
      }
 else {
        if (!getActivity().isFinishing()) {
          checkedCommentTotal=0;
          hideModerationBar();
          getListView().invalidateViews();
          FragmentTransaction ft=getFragmentManager().beginTransaction();
          WPAlertDialogFragment alert=WPAlertDialogFragment.newInstance(moderateErrorMsg);
          ft.add(alert,"String_Node_Str");
          ft.commitAllowingStateLoss();
        }
        moderateErrorMsg="String_Node_Str";
      }
    }
  }
;
  getActivity().runOnUiThread(action);
  progressDialog=new ProgressDialog(getActivity().getApplicationContext());
}