Program: 99200
Project: 99200
Buggy source:
private static Feature getFeatureByType(JSONObject geometry,JSONObject properties) throws JSONException {
  Feature feature=null;
  String featureType=geometry.getString("String_Node_Str");
  if (featureType.equals("String_Node_Str")) {
    feature=new PointFeature();
    PointFeature pointFeature=(PointFeature)feature;
    JSONArray coords=geometry.getJSONArray("String_Node_Str");
    double lat=coords.getDouble(1);
    double lon=coords.getDouble(0);
    pointFeature.setLocation(new Location((float)lat,(float)lon));
  }
  if (featureType.equals("String_Node_Str")) {
    PApplet.println("String_Node_Str");
  }
  if (featureType.equals("String_Node_Str")) {
    feature=new ShapeFeature(FeatureType.LINES);
    ShapeFeature linesFeature=(ShapeFeature)feature;
    JSONArray coordinates=geometry.getJSONArray("String_Node_Str");
    populateLinesFeature(linesFeature,coordinates);
  }
  if (featureType.equals("String_Node_Str")) {
    feature=new MultiFeature();
    MultiFeature multiFeature=(MultiFeature)feature;
    JSONArray lines=geometry.getJSONArray("String_Node_Str");
    for (int i=0; i < lines.length(); i++) {
      JSONArray coordinates=lines.getJSONArray(i).getJSONArray(0);
      ShapeFeature linesFeature=new ShapeFeature(FeatureType.LINES);
      populateLinesFeature(linesFeature,coordinates);
      multiFeature.addFeature(linesFeature);
    }
  }
  if (featureType.equals("String_Node_Str")) {
    feature=new ShapeFeature(FeatureType.POLYGON);
    ShapeFeature polygonFeature=(ShapeFeature)feature;
    JSONArray coordinates=geometry.getJSONArray("String_Node_Str").getJSONArray(0);
    populatePolygonFeature(polygonFeature,coordinates);
  }
  if (featureType.equals("String_Node_Str")) {
    feature=new MultiFeature();
    MultiFeature multiFeature=(MultiFeature)feature;
    JSONArray polygons=geometry.getJSONArray("String_Node_Str");
    for (int i=0; i < polygons.length(); i++) {
      JSONArray coordinates=polygons.getJSONArray(i).getJSONArray(0);
      ShapeFeature polygonFeature=new ShapeFeature(FeatureType.POLYGON);
      populatePolygonFeature(polygonFeature,coordinates);
      multiFeature.addFeature(polygonFeature);
    }
  }
  if (feature != null && properties != null && properties.length() > 0) {
    setProperties(feature,properties);
  }
  return feature;
}

Fixed version (ground truth):
private static Feature getFeatureByType(JSONObject geometry,JSONObject properties) throws JSONException {
  Feature feature=null;
  String featureType=geometry.getString("String_Node_Str");
  if (featureType.equals("String_Node_Str")) {
    feature=new PointFeature();
    PointFeature pointFeature=(PointFeature)feature;
    JSONArray coords=geometry.getJSONArray("String_Node_Str");
    double lat=coords.getDouble(1);
    double lon=coords.getDouble(0);
    pointFeature.setLocation(new Location((float)lat,(float)lon));
  }
  if (featureType.equals("String_Node_Str")) {
    PApplet.println("String_Node_Str");
  }
  if (featureType.equals("String_Node_Str")) {
    feature=new ShapeFeature(FeatureType.LINES);
    ShapeFeature linesFeature=(ShapeFeature)feature;
    JSONArray coordinates=geometry.getJSONArray("String_Node_Str");
    populateLinesFeature(linesFeature,coordinates);
  }
  if (featureType.equals("String_Node_Str")) {
    feature=new MultiFeature();
    MultiFeature multiFeature=(MultiFeature)feature;
    JSONArray lines=geometry.getJSONArray("String_Node_Str");
    for (int i=0; i < lines.length(); i++) {
      JSONArray coordinates=lines.getJSONArray(i);
      ShapeFeature linesFeature=new ShapeFeature(FeatureType.LINES);
      populateLinesFeature(linesFeature,coordinates);
      multiFeature.addFeature(linesFeature);
    }
  }
  if (featureType.equals("String_Node_Str")) {
    feature=new ShapeFeature(FeatureType.POLYGON);
    ShapeFeature polygonFeature=(ShapeFeature)feature;
    JSONArray coordinates=geometry.getJSONArray("String_Node_Str").getJSONArray(0);
    populatePolygonFeature(polygonFeature,coordinates);
  }
  if (featureType.equals("String_Node_Str")) {
    feature=new MultiFeature();
    MultiFeature multiFeature=(MultiFeature)feature;
    JSONArray polygons=geometry.getJSONArray("String_Node_Str");
    for (int i=0; i < polygons.length(); i++) {
      JSONArray coordinates=polygons.getJSONArray(i).getJSONArray(0);
      ShapeFeature polygonFeature=new ShapeFeature(FeatureType.POLYGON);
      populatePolygonFeature(polygonFeature,coordinates);
      multiFeature.addFeature(polygonFeature);
    }
  }
  if (feature != null && properties != null && properties.length() > 0) {
    setProperties(feature,properties);
  }
  return feature;
}