Program: 30082
Project: 30082
Buggy source:
@Override protected HE_Mesh createBase(){
  if (path == null) {
    return null;
  }
  final StringBuilder contents=new StringBuilder();
  try {
    final BufferedReader input=new BufferedReader(new FileReader(path));
    try {
      String line=null;
      while ((line=input.readLine()) != null) {
        contents.append(line);
        contents.append(System.getProperty("String_Node_Str"));
      }
    }
  finally {
      input.close();
    }
  }
 catch (  final IOException ex) {
    ex.printStackTrace();
  }
  final String data=contents.toString();
  final String[] result=data.split(System.getProperty("String_Node_Str"));
  int id=0;
  String[] subresult=result[id].split("String_Node_Str");
  id++;
  final int numVertices=Integer.parseInt(subresult[0]);
  final int numHalfedges=Integer.parseInt(subresult[1]);
  final int numFaces=Integer.parseInt(subresult[3]);
  final HE_Mesh mesh=new HE_Mesh();
  final FastTable<HE_Vertex> vertices=new FastTable<HE_Vertex>();
  for (int i=0; i < numVertices; i++) {
    vertices.add(new HE_Vertex());
  }
  final FastTable<HE_Halfedge> halfedges=new FastTable<HE_Halfedge>();
  for (int i=0; i < numHalfedges; i++) {
    halfedges.add(new HE_Halfedge());
  }
  final FastTable<HE_Face> faces=new FastTable<HE_Face>();
  for (int i=0; i < numFaces; i++) {
    faces.add(new HE_Face());
  }
  double x, y, z;
  int heid, vid, henextid, hepairid, fid;
  HE_Vertex v;
  for (int i=0; i < numVertices; i++) {
    v=vertices.get(i);
    subresult=result[id].split("String_Node_Str");
    x=Double.parseDouble(subresult[0]);
    y=Double.parseDouble(subresult[1]);
    z=Double.parseDouble(subresult[2]);
    heid=Integer.parseInt(subresult[3]);
    v._set(x,y,z);
    if (heid > -1) {
      v.setHalfedge(halfedges.get(heid));
    }
    id++;
  }
  HE_Halfedge he;
  for (int i=0; i < numHalfedges; i++) {
    he=halfedges.get(i);
    subresult=result[id].split("String_Node_Str");
    vid=Integer.parseInt(subresult[0]);
    henextid=Integer.parseInt(subresult[1]);
    hepairid=Integer.parseInt(subresult[2]);
    fid=Integer.parseInt(subresult[4]);
    if (vid > -1) {
      he.setVertex(vertices.get(vid));
    }
    if (henextid > -1) {
      he.setNext(halfedges.get(henextid));
    }
    if (hepairid > -1) {
      he.setPair(halfedges.get(hepairid));
      halfedges.get(hepairid).setPair(he);
    }
    if (fid > -1) {
      he.setFace(faces.get(fid));
    }
    id++;
  }
  HE_Face f;
  for (int i=0; i < numFaces; i++) {
    f=faces.get(i);
    subresult=result[id].split("String_Node_Str");
    heid=Integer.parseInt(subresult[0]);
    if (heid > -1) {
      f.setHalfedge(halfedges.get(heid));
    }
    id++;
  }
  mesh.addVertices(vertices);
  mesh.addHalfedges(halfedges);
  mesh.addFaces(faces);
  return mesh;
}

Fixed version (ground truth):
@Override protected HE_Mesh createBase(){
  if (path == null) {
    return null;
  }
  final StringBuilder contents=new StringBuilder();
  try {
    final BufferedReader input=new BufferedReader(new FileReader(path));
    try {
      String line=null;
      while ((line=input.readLine()) != null) {
        contents.append(line);
        contents.append(System.getProperty("String_Node_Str"));
      }
    }
  finally {
      input.close();
    }
  }
 catch (  final IOException ex) {
    ex.printStackTrace();
  }
  final String data=contents.toString();
  final String[] result=data.split(System.getProperty("String_Node_Str"));
  int id=0;
  String[] subresult=result[id].split("String_Node_Str");
  id++;
  final int numVertices=Integer.parseInt(subresult[0]);
  final int numHalfedges=Integer.parseInt(subresult[1]);
  final int numFaces=Integer.parseInt(subresult[2]);
  final HE_Mesh mesh=new HE_Mesh();
  final FastTable<HE_Vertex> vertices=new FastTable<HE_Vertex>();
  for (int i=0; i < numVertices; i++) {
    vertices.add(new HE_Vertex());
  }
  final FastTable<HE_Halfedge> halfedges=new FastTable<HE_Halfedge>();
  for (int i=0; i < numHalfedges; i++) {
    halfedges.add(new HE_Halfedge());
  }
  final FastTable<HE_Face> faces=new FastTable<HE_Face>();
  for (int i=0; i < numFaces; i++) {
    faces.add(new HE_Face());
  }
  double x, y, z;
  int heid, vid, henextid, hepairid, fid;
  HE_Vertex v;
  for (int i=0; i < numVertices; i++) {
    v=vertices.get(i);
    subresult=result[id].split("String_Node_Str");
    x=Double.parseDouble(subresult[0]);
    y=Double.parseDouble(subresult[1]);
    z=Double.parseDouble(subresult[2]);
    heid=Integer.parseInt(subresult[3]);
    v._set(x,y,z);
    if (heid > -1) {
      v.setHalfedge(halfedges.get(heid));
    }
    id++;
  }
  HE_Halfedge he;
  for (int i=0; i < numHalfedges; i++) {
    he=halfedges.get(i);
    subresult=result[id].split("String_Node_Str");
    vid=Integer.parseInt(subresult[0]);
    henextid=Integer.parseInt(subresult[1]);
    hepairid=Integer.parseInt(subresult[2]);
    fid=Integer.parseInt(subresult[3]);
    if (vid > -1) {
      he.setVertex(vertices.get(vid));
    }
    if (henextid > -1) {
      he.setNext(halfedges.get(henextid));
    }
    if (hepairid > -1) {
      he.setPair(halfedges.get(hepairid));
      halfedges.get(hepairid).setPair(he);
    }
    if (fid > -1) {
      he.setFace(faces.get(fid));
    }
    id++;
  }
  HE_Face f;
  for (int i=0; i < numFaces; i++) {
    f=faces.get(i);
    subresult=result[id].split("String_Node_Str");
    heid=Integer.parseInt(subresult[0]);
    if (heid > -1) {
      f.setHalfedge(halfedges.get(heid));
    }
    id++;
  }
  mesh.addVertices(vertices);
  mesh.addHalfedges(halfedges);
  mesh.addFaces(faces);
  return mesh;
}