Program: 150372
Project: 150372
Buggy source:
@Override void convert(Attributes attributes,Stack<PermissionContainer> stack) throws SAXException {
  PermissionContainer container=stack.peek();
  String[] parts=attributes.getValue("String_Node_Str").split("String_Node_Str");
  String[] coords=parts[0].split("String_Node_Str");
  Coordinate start;
  if (coords.length == 2) {
    start=new Coordinate(getInt(coords[0]),0,getInt(coords[1]));
  }
 else   if (coords.length >= 3) {
    start=new Coordinate(getInt(coords[0]),getInt(coords[1]),getInt(coords[2]));
  }
 else {
    throw new SAXException("String_Node_Str" + parts[0]);
  }
  Dimension dimension=(parts.length >= 2) ? Dimension.get(parts[1]) : Dimension.EARTH;
  parts=attributes.getValue("String_Node_Str").split("String_Node_Str");
  coords=parts[0].split("String_Node_Str");
  Coordinate end;
  if (coords.length == 2) {
    end=new Coordinate(getInt(coords[0]),127,getInt(coords[1]));
  }
 else   if (coords.length >= 3) {
    end=new Coordinate(getInt(coords[0]),getInt(coords[1]),getInt(coords[2]));
  }
 else {
    throw new SAXException("String_Node_Str" + parts[0]);
  }
  if (!((Config)stack.firstElement()).dimensions.contains(dimension)) {
    ((Config)stack.firstElement()).dimensions.add(dimension);
  }
  DimensionAreaStorage.setInstance(((Config)stack.firstElement()).dimensions.get(dimension).areas);
  Area area=new Area(attributes.getValue("String_Node_Str"),start,end);
  if (attributes.getIndex("String_Node_Str") >= 0) {
    area.owner=attributes.getValue("String_Node_Str").toLowerCase();
  }
  area.fullInit();
  if (container instanceof Config) {
    ((Config)container).dimensions.get(dimension).add(area);
  }
 else {
    ((Area)container).areas.add(area);
  }
  stack.push(area);
}

Fixed version (ground truth):
@Override void convert(Attributes attributes,Stack<PermissionContainer> stack) throws SAXException {
  PermissionContainer container=stack.peek();
  String[] parts=attributes.getValue("String_Node_Str").split("String_Node_Str");
  String[] coords=parts[0].split("String_Node_Str");
  Coordinate start;
  if (coords.length == 2) {
    start=new Coordinate(getInt(coords[0]),0,getInt(coords[1]));
  }
 else   if (coords.length >= 3) {
    start=new Coordinate(getInt(coords[0]),getInt(coords[1]),getInt(coords[2]));
  }
 else {
    throw new SAXException("String_Node_Str" + parts[0]);
  }
  Dimension dimension=(parts.length >= 2) ? Dimension.get(parts[1]) : Dimension.EARTH;
  parts=attributes.getValue("String_Node_Str").split("String_Node_Str");
  coords=parts[0].split("String_Node_Str");
  Coordinate end;
  if (coords.length == 2) {
    end=new Coordinate(getInt(coords[0]),127,getInt(coords[1]));
  }
 else   if (coords.length >= 3) {
    end=new Coordinate(getInt(coords[0]),getInt(coords[1]),getInt(coords[2]));
  }
 else {
    throw new SAXException("String_Node_Str" + parts[0]);
  }
  if (!((Config)stack.firstElement()).dimensions.contains(dimension)) {
    ((Config)stack.firstElement()).dimensions.add(dimension);
  }
  DimensionAreaStorage.setInstance(((Config)stack.firstElement()).dimensions.get(dimension).areas);
  Area area=new Area(attributes.getValue("String_Node_Str"),start,end);
  if (attributes.getIndex("String_Node_Str") >= 0) {
    area.owner=attributes.getValue("String_Node_Str").toLowerCase();
  }
  area.init();
  area.finish();
  if (container instanceof Config) {
    ((Config)container).dimensions.get(dimension).add(area);
  }
 else {
    ((Area)container).areas.add(area);
  }
  stack.push(area);
}