Program: 189499
Project: 189499
Buggy source:
@Override public void buildGraph(Graph graph,HashMap<Class<?>,Object> extra){
  Field xfield;
  Field yfield;
  Field geomfield;
  try {
    xfield=AbstractVertex.class.getDeclaredField("String_Node_Str");
    xfield.setAccessible(true);
    yfield=AbstractVertex.class.getDeclaredField("String_Node_Str");
    yfield.setAccessible(true);
    geomfield=PlainStreetEdge.class.getDeclaredField("String_Node_Str");
    geomfield.setAccessible(true);
  }
 catch (  final SecurityException e) {
    throw new RuntimeException(e);
  }
catch (  final NoSuchFieldException e) {
    throw new RuntimeException(e);
  }
  graph=graph.getService(BaseGraph.class).getBaseGraph();
  graph.setVertexComparatorFactory(new SimpleVertexComparatorFactory());
  final MathTransform transform=getCRSTransform();
  try {
    for (    final Vertex v : graph.getVertices()) {
      final AbstractVertex abv=((AbstractVertex)v);
      final Coordinate converted=new Coordinate();
      JTS.transform(abv.getCoordinate(),converted,transform);
      xfield.set(abv,converted.x);
      yfield.set(abv,converted.y);
      final ArrayList<Edge> toRemove=new ArrayList<Edge>();
      for (      final Edge e : v.getOutgoing()) {
        final Geometry orig=e.getGeometry();
        if (orig == null) {
          toRemove.add(e);
          continue;
        }
        final Geometry geom=JTS.transform(orig,transform);
        geomfield.set(e,geom);
      }
      for (      final Edge e : toRemove) {
        v.removeOutgoing(e);
        e.getToVertex().removeIncoming(e);
      }
    }
  }
 catch (  final NoninvertibleTransformException e) {
    throw new RuntimeException(e);
  }
catch (  final TransformException e) {
    throw new RuntimeException(e);
  }
catch (  final IllegalArgumentException e) {
    throw new RuntimeException(e);
  }
catch (  final IllegalAccessException e) {
    throw new RuntimeException(e);
  }
}

Fixed version (ground truth):
@Override public void buildGraph(Graph graph,HashMap<Class<?>,Object> extra){
  Field xfield;
  Field yfield;
  Field geomfield;
  try {
    xfield=AbstractVertex.class.getDeclaredField("String_Node_Str");
    xfield.setAccessible(true);
    yfield=AbstractVertex.class.getDeclaredField("String_Node_Str");
    yfield.setAccessible(true);
    geomfield=PlainStreetEdge.class.getDeclaredField("String_Node_Str");
    geomfield.setAccessible(true);
  }
 catch (  final SecurityException e) {
    throw new RuntimeException(e);
  }
catch (  final NoSuchFieldException e) {
    throw new RuntimeException(e);
  }
  graph=graph.getService(BaseGraph.class).getBaseGraph();
  graph.setVertexComparatorFactory(new SimpleVertexComparatorFactory());
  try {
    for (    final Vertex v : graph.getVertices()) {
      final AbstractVertex abv=((AbstractVertex)v);
      final ProjectedCoordinate converted=GeoUtils.convertToEuclidean(GeoUtils.reverseCoordinates(abv.getCoordinate()));
      xfield.set(abv,converted.x);
      yfield.set(abv,converted.y);
      final ArrayList<Edge> toRemove=new ArrayList<Edge>();
      for (      final Edge e : v.getOutgoing()) {
        final Geometry orig=e.getGeometry();
        if (orig == null) {
          toRemove.add(e);
          continue;
        }
        final Geometry geom=GeoUtils.projectLonLatGeom(orig);
        final ProjectedCoordinate tmpConv=GeoUtils.convertToEuclidean(GeoUtils.reverseCoordinates(orig.getCoordinate()));
        geom.setUserData(new Integer(tmpConv.getUtmZone()));
        geomfield.set(e,geom);
      }
      for (      final Edge e : toRemove) {
        v.removeOutgoing(e);
        e.getToVertex().removeIncoming(e);
      }
    }
  }
 catch (  final IllegalArgumentException e) {
    throw new RuntimeException(e);
  }
catch (  final IllegalAccessException e) {
    throw new RuntimeException(e);
  }
}