Program: 87485
Project: 87485
Buggy source:
@Override public void endElement(String namespaceURI,String localName,String qName){
  if (!inPlace)   return;
  if (localName.equals("String_Node_Str")) {
    inPlace=false;
    if (!ignore) {
      final SearchStationData sendData=station;
      handler.post(new Runnable(){
        @Override public void run(){
          handler.onData(sendData);
        }
      }
);
    }
    ignore=false;
  }
 else {
    if (ignore)     return;
    if (inX && localName.equals("String_Node_Str")) {
      inX=false;
      station.utmCoords[0]=Integer.parseInt(buffer.toString());
    }
 else     if (inY && localName.equals("String_Node_Str")) {
      inY=false;
      station.utmCoords[1]=Integer.parseInt(buffer.toString());
    }
 else     if (inID && localName.equals("String_Node_Str")) {
      inID=false;
      station.stationId=Integer.parseInt(buffer.toString());
    }
 else     if (inName && localName.equals("String_Node_Str")) {
      inName=false;
      station.stopName=buffer.toString();
      searchForAddress();
    }
 else     if (inDistrict && localName.equals("String_Node_Str")) {
      inDistrict=false;
      if (station.extra == null) {
        station.extra=buffer.toString();
      }
 else {
        station.extra=station.extra + "String_Node_Str" + buffer.toString();
      }
    }
 else     if (inType && localName.equals("String_Node_Str")) {
      inType=false;
      if (buffer.length() != 4 && !buffer.toString().equals("String_Node_Str")) {
        ignore=true;
      }
    }
 else     if (inStops && localName.equals("String_Node_Str")) {
      inStops=false;
    }
 else     if (inWalkingDistance && localName.equals("String_Node_Str")) {
      inWalkingDistance=false;
      station.airDistance=Integer.parseInt(buffer.toString());
    }
  }
  buffer.setLength(0);
}

Fixed version (ground truth):
@Override public void endElement(String namespaceURI,String localName,String qName){
  if (!inPlace)   return;
  if (localName.equals("String_Node_Str")) {
    inPlace=false;
    if (!ignore) {
      final SearchStationData sendData=station;
      handler.post(new Runnable(){
        @Override public void run(){
          handler.onData(sendData);
        }
      }
);
    }
    ignore=false;
  }
 else {
    if (ignore)     return;
    if (inX && localName.equals("String_Node_Str")) {
      inX=false;
      station.utmCoords[0]=Integer.parseInt(buffer.toString());
    }
 else     if (inY && localName.equals("String_Node_Str")) {
      inY=false;
      station.utmCoords[1]=Integer.parseInt(buffer.toString());
    }
 else     if (inID && localName.equals("String_Node_Str")) {
      inID=false;
      station.stationId=Integer.parseInt(buffer.toString());
    }
 else     if (inName && localName.equals("String_Node_Str")) {
      inName=false;
      station.stopName=buffer.toString();
      searchForAddress();
    }
 else     if (inDistrict && localName.equals("String_Node_Str")) {
      inDistrict=false;
      if (station.extra == null) {
        station.extra=buffer.toString();
      }
 else {
        station.extra=station.extra + "String_Node_Str" + buffer.toString();
      }
    }
 else     if (inType && localName.equals("String_Node_Str")) {
      inType=false;
      if (buffer.length() != 4 && !buffer.toString().equals("String_Node_Str")) {
        ignore=true;
      }
    }
 else     if (inStops && localName.equals("String_Node_Str")) {
      inStops=false;
    }
 else     if (inWalkingDistance && localName.equals("String_Node_Str")) {
      inWalkingDistance=false;
      station.setWalkingDistance(Integer.parseInt(buffer.toString()));
    }
  }
  buffer.setLength(0);
}