Program: 114445
Project: 114445
Buggy source:
@Override public void bindView(View view,final Context context,Cursor cursor){
  ViewHolder viewHolder=new ViewHolder();
  viewHolder.attachMessageRelativeLayout=(RelativeLayout)view.findViewById(R.id.attach_message_relativelayout);
  viewHolder.timeAttachMessageTextView=(TextView)view.findViewById(R.id.time_attach_message_textview);
  viewHolder.progressRelativeLayout=(RelativeLayout)view.findViewById(R.id.progress_relativelayout);
  viewHolder.textMessageView=view.findViewById(R.id.text_message_view);
  viewHolder.messageTextView=(EmojiTextView)view.findViewById(R.id.message_textview);
  viewHolder.attachImageView=(ImageView)view.findViewById(R.id.attach_imageview);
  viewHolder.timeTextMessageTextView=(TextView)view.findViewById(R.id.time_text_message_textview);
  viewHolder.verticalProgressBar=(ProgressBar)view.findViewById(R.id.vertical_progressbar);
  viewHolder.verticalProgressBar.setProgressDrawable(context.getResources().getDrawable(R.drawable.vertical_progressbar));
  viewHolder.centeredProgressBar=(ProgressBar)view.findViewById(R.id.centered_progressbar);
  MessageCache messageCache=DatabaseManager.getMessageCacheFromCursor(cursor);
  resetUI(viewHolder);
  if (!TextUtils.isEmpty(messageCache.getAttachUrl())) {
    setViewVisibility(viewHolder.progressRelativeLayout,View.VISIBLE);
    viewHolder.timeAttachMessageTextView.setText(DateUtils.longToMessageDate(messageCache.getTime()));
    int maskedBackgroundId=getMaskedImageBackgroundId(messageCache.getSenderId());
    displayAttachImage(messageCache.getAttachUrl(),viewHolder,maskedBackgroundId);
  }
 else {
    setViewVisibility(viewHolder.textMessageView,View.VISIBLE);
    viewHolder.messageTextView.setText(messageCache.getMessage());
    viewHolder.timeTextMessageTextView.setText(DateUtils.longToMessageDate(messageCache.getTime()));
    if (isOwnMessage(messageCache.getSenderId())) {
      viewHolder.messageDeliveryStatusImageView=(ImageView)view.findViewById(R.id.message_delivery_status_imageview);
      viewHolder.messageDeliveryStatusImageView.setImageResource(getMessageDeliveredIconId(messageCache.isDelivered()));
    }
  }
  boolean isRead=cursor.getInt(cursor.getColumnIndex(MessageTable.Cols.IS_READ)) > Consts.ZERO_INT_VALUE;
  if (!isRead) {
    messageCache.setRead(true);
    QBUpdateStatusMessageCommand.start(context,dialog,messageCache);
  }
}

Fixed version (ground truth):
@Override public void bindView(View view,final Context context,Cursor cursor){
  ViewHolder viewHolder=new ViewHolder();
  viewHolder.attachMessageRelativeLayout=(RelativeLayout)view.findViewById(R.id.attach_message_relativelayout);
  viewHolder.timeAttachMessageTextView=(TextView)view.findViewById(R.id.time_attach_message_textview);
  viewHolder.progressRelativeLayout=(RelativeLayout)view.findViewById(R.id.progress_relativelayout);
  viewHolder.textMessageView=view.findViewById(R.id.text_message_view);
  viewHolder.messageTextView=(EmojiTextView)view.findViewById(R.id.message_textview);
  viewHolder.attachImageView=(ImageView)view.findViewById(R.id.attach_imageview);
  viewHolder.timeTextMessageTextView=(TextView)view.findViewById(R.id.time_text_message_textview);
  viewHolder.verticalProgressBar=(ProgressBar)view.findViewById(R.id.vertical_progressbar);
  viewHolder.verticalProgressBar.setProgressDrawable(context.getResources().getDrawable(R.drawable.vertical_progressbar));
  viewHolder.centeredProgressBar=(ProgressBar)view.findViewById(R.id.centered_progressbar);
  MessageCache messageCache=DatabaseManager.getMessageCacheFromCursor(cursor);
  resetUI(viewHolder);
  if (!TextUtils.isEmpty(messageCache.getAttachUrl())) {
    setViewVisibility(viewHolder.progressRelativeLayout,View.VISIBLE);
    viewHolder.timeAttachMessageTextView.setText(DateUtils.longToMessageDate(messageCache.getTime()));
    int maskedBackgroundId=getMaskedImageBackgroundId(messageCache.getSenderId());
    displayAttachImage(messageCache.getAttachUrl(),viewHolder,maskedBackgroundId);
  }
 else {
    setViewVisibility(viewHolder.textMessageView,View.VISIBLE);
    viewHolder.messageTextView.setText(messageCache.getMessage());
    viewHolder.timeTextMessageTextView.setText(DateUtils.longToMessageDate(messageCache.getTime()));
    if (isOwnMessage(messageCache.getSenderId())) {
      viewHolder.messageDeliveryStatusImageView=(ImageView)view.findViewById(R.id.message_delivery_status_imageview);
      viewHolder.messageDeliveryStatusImageView.setImageResource(getMessageDeliveredIconId(messageCache.isDelivered()));
    }
  }
  boolean isRead=cursor.getInt(cursor.getColumnIndex(MessageTable.Cols.IS_READ)) > Consts.ZERO_INT_VALUE;
  if (!isRead) {
    messageCache.setRead(true);
    Log.d("String_Node_Str","String_Node_Str" + messageCache.getId() + "String_Node_Str"+ messageCache.getPacketId());
    QBUpdateStatusMessageCommand.start(context,dialog,messageCache);
  }
}