Program: 87477
Project: 87477
Buggy source:
@Override public View getView(int pos,View convertView,ViewGroup arg2){
  final StationData station=items.get(pos);
  ViewHolder holder;
  if (convertView == null || convertView.getId() != layout) {
    convertView=inflater.inflate(layout,null);
    convertView.setId(layout);
    holder=new ViewHolder();
    holder.star=(ImageView)convertView.findViewById(R.id.star);
    holder.stopName=(TextView)convertView.findViewById(R.id.stopname);
    holder.address=(TextView)convertView.findViewById(R.id.address);
    holder.range=(TextView)convertView.findViewById(R.id.range);
    convertView.setTag(holder);
  }
 else {
    holder=(ViewHolder)convertView.getTag();
  }
  if (layout == R.layout.selectstation_list_multiselect) {
    CheckBox stopCheckBox=(CheckBox)convertView.findViewById(R.id.stopname);
    stopCheckBox.setOnClickListener(new OnClickListener(){
      @Override public void onClick(      View v){
        parent.stationSelected(station);
      }
    }
);
  }
  holder.stopName.setText(station.stopName);
  if (station.extra != null) {
    holder.address.setText(station.extra);
    holder.address.setVisibility(View.VISIBLE);
  }
 else {
    holder.address.setVisibility(View.INVISIBLE);
  }
  if (station.walkingDistance > 0) {
    holder.range.setText("String_Node_Str" + station.walkingDistance + "String_Node_Str");
    holder.range.setVisibility(View.VISIBLE);
  }
 else {
    holder.range.setText("String_Node_Str");
    holder.range.setVisibility(View.INVISIBLE);
  }
  if (station.isFavorite) {
    holder.star.setVisibility(View.VISIBLE);
  }
 else {
    holder.star.setVisibility(View.GONE);
  }
  return convertView;
}

Fixed version (ground truth):
@Override public View getView(final int pos,View convertView,ViewGroup arg2){
  final StationData station=items.get(pos);
  ViewHolder holder;
  if (convertView == null || convertView.getId() != layout) {
    convertView=inflater.inflate(layout,null);
    convertView.setId(layout);
    holder=new ViewHolder();
    holder.star=(ImageView)convertView.findViewById(R.id.star);
    holder.stopName=(TextView)convertView.findViewById(R.id.stopname);
    holder.address=(TextView)convertView.findViewById(R.id.address);
    holder.range=(TextView)convertView.findViewById(R.id.range);
    convertView.setTag(holder);
  }
 else {
    holder=(ViewHolder)convertView.getTag();
  }
  holder.stopName.setText(station.stopName);
  if (station.extra != null) {
    holder.address.setText(station.extra);
    holder.address.setVisibility(View.VISIBLE);
  }
 else {
    holder.address.setVisibility(View.INVISIBLE);
  }
  if (station.walkingDistance > 0) {
    holder.range.setText("String_Node_Str" + station.walkingDistance + "String_Node_Str");
    holder.range.setVisibility(View.VISIBLE);
  }
 else {
    holder.range.setText("String_Node_Str");
    holder.range.setVisibility(View.INVISIBLE);
  }
  if (station.isFavorite) {
    holder.star.setVisibility(View.VISIBLE);
  }
 else {
    holder.star.setVisibility(View.GONE);
  }
  if (layout == R.layout.selectstation_list_multiselect) {
    final CheckBox stopCheckBox=(CheckBox)convertView.findViewById(R.id.stopname);
    stopCheckBox.setOnClickListener(new OnClickListener(){
      @Override public void onClick(      View v){
        parent.stationSelected(station);
      }
    }
);
    stopCheckBox.setChecked(parent.route_isStationSelected(station));
  }
  return convertView;
}