Program: 114518
Project: 114518
Buggy source:
@Override public void bindView(View view,final Context context,Cursor cursor){
  final ViewHolder viewHolder=(ViewHolder)view.getTag();
  int senderId=cursor.getInt(cursor.getColumnIndex(DialogMessageTable.Cols.SENDER_ID));
  String body=cursor.getString(cursor.getColumnIndex(DialogMessageTable.Cols.BODY));
  String attachUrl=cursor.getString(cursor.getColumnIndex(DialogMessageTable.Cols.ATTACH_FILE_ID));
  long time=cursor.getLong(cursor.getColumnIndex(DialogMessageTable.Cols.TIME));
  boolean isOwnMessage=isOwnMessage(senderId);
  viewHolder.attachMessageRelativeLayout.setVisibility(View.GONE);
  if (!TextUtils.isEmpty(attachUrl)) {
    viewHolder.timeAttachMessageTextView.setText(DateUtils.longToMessageDate(time));
    viewHolder.textMessageLinearLayout.setVisibility(View.GONE);
    viewHolder.progressRelativeLayout.setVisibility(View.VISIBLE);
    displayAttachImage(attachUrl,viewHolder.attachImageView,viewHolder.progressRelativeLayout,viewHolder.attachMessageRelativeLayout,viewHolder.verticalProgressBar,viewHolder.centeredProgressBar,isOwnMessage);
  }
 else {
    viewHolder.timeTextMessageTextView.setText(DateUtils.longToMessageDate(time));
    viewHolder.textMessageLinearLayout.setVisibility(View.VISIBLE);
    viewHolder.attachImageView.setVisibility(View.GONE);
    viewHolder.messageTextView.setText(body);
  }
  boolean isRead=cursor.getInt(cursor.getColumnIndex(DialogMessageTable.Cols.IS_READ)) > Consts.ZERO_INT_VALUE;
  if (!isRead) {
    String messageId=cursor.getString(cursor.getColumnIndex(DialogMessageTable.Cols.ID));
    QBUpdateStatusMessageCommand.start(context,messageId,true);
  }
}

Fixed version (ground truth):
@Override public void bindView(View view,final Context context,Cursor cursor){
  attachMessageRelativeLayout=(RelativeLayout)view.findViewById(R.id.attach_message_relativelayout);
  timeAttachMessageTextView=(TextView)view.findViewById(R.id.time_attach_message_textview);
  progressRelativeLayout=(RelativeLayout)view.findViewById(R.id.progress_relativelayout);
  textMessageLinearLayout=(LinearLayout)view.findViewById(R.id.text_message_linearlayout);
  messageTextView=(ChatTextView)view.findViewById(R.id.message_textview);
  attachImageView=(ImageView)view.findViewById(R.id.attach_imageview);
  timeTextMessageTextView=(TextView)view.findViewById(R.id.time_text_message_textview);
  verticalProgressBar=(ProgressBar)view.findViewById(R.id.vertical_progressbar);
  verticalProgressBar.setProgressDrawable(context.getResources().getDrawable(R.drawable.vertical_progressbar));
  centeredProgressBar=(ProgressBar)view.findViewById(R.id.centered_progressbar);
  int senderId=cursor.getInt(cursor.getColumnIndex(DialogMessageTable.Cols.SENDER_ID));
  String body=cursor.getString(cursor.getColumnIndex(DialogMessageTable.Cols.BODY));
  String attachUrl=cursor.getString(cursor.getColumnIndex(DialogMessageTable.Cols.ATTACH_FILE_ID));
  long time=cursor.getLong(cursor.getColumnIndex(DialogMessageTable.Cols.TIME));
  boolean isOwnMessage=isOwnMessage(senderId);
  attachMessageRelativeLayout.setVisibility(View.GONE);
  if (!TextUtils.isEmpty(attachUrl)) {
    timeAttachMessageTextView.setText(DateUtils.longToMessageDate(time));
    textMessageLinearLayout.setVisibility(View.GONE);
    progressRelativeLayout.setVisibility(View.VISIBLE);
    displayAttachImage(attachUrl,attachImageView,progressRelativeLayout,attachMessageRelativeLayout,verticalProgressBar,centeredProgressBar,isOwnMessage);
  }
 else {
    timeTextMessageTextView.setText(DateUtils.longToMessageDate(time));
    textMessageLinearLayout.setVisibility(View.VISIBLE);
    attachImageView.setVisibility(View.GONE);
    messageTextView.setText(body);
  }
  boolean isRead=cursor.getInt(cursor.getColumnIndex(DialogMessageTable.Cols.IS_READ)) > Consts.ZERO_INT_VALUE;
  if (!isRead) {
    String messageId=cursor.getString(cursor.getColumnIndex(DialogMessageTable.Cols.ID));
    QBUpdateStatusMessageCommand.start(context,messageId,true);
  }
}