Program: 86175
Project: 86175
Buggy source:
@Override public void setItem(final ReservedItem item){
  super.setItem(item);
  DateTimeFormatter fmt=DateTimeFormat.shortDate();
  SpannableStringBuilder status=new SpannableStringBuilder();
  if (item.getStatus() != null) {
    int start=status.length();
    status.append(Html.fromHtml(item.getStatus()));
    status.setSpan(new ForegroundColorSpan(textColorPrimary),start,start + Html.fromHtml(item.getStatus()).length(),0);
    if (item.getReadyDate() != null || item.getExpirationDate() != null) {
      status.append("String_Node_Str");
    }
  }
  if (item.getReadyDate() != null) {
    status.append(context.getString(R.string.reservation_expire_until)).append("String_Node_Str").append(fmt.print(item.getReadyDate()));
  }
  if (item.getExpirationDate() != null) {
    if (item.getReadyDate() != null)     status.append("String_Node_Str");
    status.append(fmt.print(item.getExpirationDate()));
  }
  if (status.length() > 0) {
    tvStatus.setText(status);
  }
 else {
    tvStatus.setVisibility(View.GONE);
  }
  ivProlong.setVisibility(View.GONE);
  ivDownload.setVisibility(View.GONE);
  if (item.getBookingData() != null) {
    ivBooking.setOnClickListener(new View.OnClickListener(){
      @Override public void onClick(      View arg0){
        callback.bookingStart(item.getBookingData());
      }
    }
);
    ivBooking.setVisibility(View.VISIBLE);
    ivCancel.setVisibility(View.GONE);
  }
 else   if (item.getCancelData() != null) {
    ivCancel.setOnClickListener(new View.OnClickListener(){
      @Override public void onClick(      View arg0){
        callback.cancel(item.getCancelData());
      }
    }
);
    ivCancel.setVisibility(View.VISIBLE);
    ivBooking.setVisibility(View.GONE);
  }
 else {
    ivCancel.setVisibility(View.INVISIBLE);
    ivBooking.setVisibility(View.GONE);
  }
  itemView.setOnClickListener(new View.OnClickListener(){
    @Override public void onClick(    View view){
      callback.onClick(item,ViewHolder.this);
    }
  }
);
}

Fixed version (ground truth):
@Override public void setItem(final ReservedItem item){
  super.setItem(item);
  DateTimeFormatter fmt=DateTimeFormat.shortDate();
  SpannableStringBuilder status=new SpannableStringBuilder();
  if (item.getStatus() != null) {
    int start=status.length();
    status.append(Html.fromHtml(item.getStatus()));
    status.setSpan(new ForegroundColorSpan(textColorPrimary),start,start + Html.fromHtml(item.getStatus()).length(),0);
    if (item.getReadyDate() != null || item.getExpirationDate() != null) {
      status.append("String_Node_Str");
    }
  }
  if (item.getReadyDate() != null) {
    status.append(fmt.print(item.getReadyDate()));
  }
  if (item.getExpirationDate() != null) {
    if (item.getReadyDate() != null)     status.append("String_Node_Str");
    status.append(context.getString(R.string.reservation_expire_until)).append("String_Node_Str").append(fmt.print(item.getExpirationDate()));
  }
  setTextOrHide(status,tvStatus);
  ivProlong.setVisibility(View.GONE);
  ivDownload.setVisibility(View.GONE);
  if (item.getBookingData() != null) {
    ivBooking.setOnClickListener(new View.OnClickListener(){
      @Override public void onClick(      View arg0){
        callback.bookingStart(item.getBookingData());
      }
    }
);
    ivBooking.setVisibility(View.VISIBLE);
    ivCancel.setVisibility(View.GONE);
  }
 else   if (item.getCancelData() != null) {
    ivCancel.setOnClickListener(new View.OnClickListener(){
      @Override public void onClick(      View arg0){
        callback.cancel(item.getCancelData());
      }
    }
);
    ivCancel.setVisibility(View.VISIBLE);
    ivBooking.setVisibility(View.GONE);
  }
 else {
    ivCancel.setVisibility(View.INVISIBLE);
    ivBooking.setVisibility(View.GONE);
  }
  itemView.setOnClickListener(new View.OnClickListener(){
    @Override public void onClick(    View view){
      callback.onClick(item,ViewHolder.this);
    }
  }
);
}