Program: 69013
Project: 69013
Buggy source:
public View getView(final int position,View convertView,ViewGroup parent){
  final ViewHolder holder;
  if (convertView == null) {
    convertView=mInflater.inflate(R.layout.channel_list_item,null);
    holder=new ViewHolder();
    holder.row=convertView.findViewById(R.id.channel_row);
    holder.name=convertView.findViewById(R.id.channel_name);
    holder.unread=convertView.findViewById(R.id.channel_unread);
    convertView.setTag(holder);
  }
 else {
    holder=(ViewHolder)convertView.getTag();
  }
  final Channel channel=channels.get(position);
  if (channel != null) {
    String color=((position % 2) == 0) ? "String_Node_Str" : "String_Node_Str";
    holder.row=convertView.findViewById(R.id.channel_row);
    holder.row.setBackgroundColor(Color.parseColor(color));
    holder.name.setText(channel.getName());
    Integer unreadText=channel.getUnread();
    if (unreadText > 0) {
      holder.unread.setVisibility(View.VISIBLE);
      holder.unread.setText(unreadText);
    }
 else {
      holder.unread.setVisibility(View.GONE);
    }
    holder.row.setOnTouchListener(new View.OnTouchListener(){
      @Override public boolean onTouch(      View view,      MotionEvent motionEvent){
        String backColor=((position % 2) == 0) ? "String_Node_Str" : "String_Node_Str";
switch (motionEvent.getAction()) {
case MotionEvent.ACTION_UP:
          holder.row.setBackgroundColor(Color.parseColor(backColor));
        Intent intent=new Intent(context,TimelineActivity.class);
      intent.putExtra("String_Node_Str",channel.getUid());
    intent.putExtra("String_Node_Str",channel.getName());
  intent.putExtra("String_Node_Str",channel.getUnread());
context.startActivity(intent);
break;
}
return true;
}
}
);
}
return convertView;
}

Fixed version (ground truth):
public View getView(final int position,View convertView,ViewGroup parent){
  final ViewHolder holder;
  if (convertView == null) {
    convertView=mInflater.inflate(R.layout.channel_list_item,null);
    holder=new ViewHolder();
    holder.row=convertView.findViewById(R.id.channel_row);
    holder.name=convertView.findViewById(R.id.channel_name);
    holder.unread=convertView.findViewById(R.id.channel_unread);
    convertView.setTag(holder);
  }
 else {
    holder=(ViewHolder)convertView.getTag();
  }
  final Channel channel=channels.get(position);
  if (channel != null) {
    String color=((position % 2) == 0) ? "String_Node_Str" : "String_Node_Str";
    holder.row=convertView.findViewById(R.id.channel_row);
    holder.row.setBackgroundColor(Color.parseColor(color));
    holder.name.setText(channel.getName());
    Integer unreadText=channel.getUnread();
    if (unreadText > 0) {
      holder.unread.setVisibility(View.VISIBLE);
      holder.unread.setText(String.valueOf(unreadText));
    }
 else {
      holder.unread.setVisibility(View.GONE);
    }
    holder.row.setOnTouchListener(new View.OnTouchListener(){
      @Override public boolean onTouch(      View view,      MotionEvent motionEvent){
        String backColor=((position % 2) == 0) ? "String_Node_Str" : "String_Node_Str";
switch (motionEvent.getAction()) {
case MotionEvent.ACTION_UP:
          holder.row.setBackgroundColor(Color.parseColor(backColor));
        Intent intent=new Intent(context,TimelineActivity.class);
      intent.putExtra("String_Node_Str",channel.getUid());
    intent.putExtra("String_Node_Str",channel.getName());
  intent.putExtra("String_Node_Str",channel.getUnread());
context.startActivity(intent);
break;
}
return true;
}
}
);
}
return convertView;
}