Program: 94360
Project: 94360
Buggy source:
@SuppressWarnings("String_Node_Str") public Geometry parse(String line){
  if (_wktReader == null) {
    _wktReader=new WKTReader();
  }
  Geometry feature=null;
  Double x=null, y=null;
  String wktGeometry=null;
  Map<String,String> attrs=new HashMap<>();
  String[] values;
  if (attributeNames.size() == 1) {
    values=split(line,'\n',encapsulator);
  }
 else {
    values=split(line,delimiter,encapsulator);
  }
  if (values.length == 0) {
    log.info("String_Node_Str");
  }
  if (geometryCol < 0 && xCol < 0 && yCol < 0) {
    for (int i=0; i < values.length; i++) {
      if (WktGeometryUtils.isValidWktGeometry(values[i])) {
        attributeNames=new ArrayList<>(values.length);
        for (int j=0; j < values.length; j++) {
          if (j == i) {
            geometryCol=i;
          }
          attributeNames.add(Integer.toString(i));
        }
        break;
      }
    }
  }
  for (int i=0; i < values.length; i++) {
    if (i == geometryCol) {
      wktGeometry=values[i];
    }
 else     if (i == xCol) {
      try {
        if (values[i].trim().length() > 0) {
          x=Double.parseDouble(values[i]);
        }
 else {
          x=null;
        }
      }
 catch (      NumberFormatException e) {
        log.error("String_Node_Str" + values[i] + "String_Node_Str");
        x=null;
      }
    }
 else     if (i == yCol) {
      try {
        if (values[i].trim().length() > 0) {
          y=Double.parseDouble(values[i]);
        }
 else {
          y=null;
        }
      }
 catch (      NumberFormatException e) {
        log.error("String_Node_Str" + values[i] + "String_Node_Str");
        y=null;
      }
    }
    if (i < attributeNames.size()) {
      attrs.put(attributeNames.get(i),values[i]);
    }
  }
  if (wktGeometry != null) {
    try {
      feature=GeometryFactory.fromJTS(_wktReader.read(wktGeometry),attrs);
    }
 catch (    Exception e) {
      try {
        feature=GeometryFactory.fromJTS(_wktReader.read(WktGeometryUtils.wktGeometryFixer(wktGeometry)));
      }
 catch (      Exception e2) {
        log.error("String_Node_Str" + wktGeometry + "String_Node_Str");
      }
    }
  }
 else   if (geometryCol == -1 && xCol >= 0 && yCol >= 0) {
    if (x != null && y != null) {
      feature=GeometryFactory.createPoint(x,y,attrs);
    }
  }
  if (feature == null) {
    feature=GeometryFactory.createEmptyGeometry(attrs);
  }
  return feature;
}

Fixed version (ground truth):
@SuppressWarnings("String_Node_Str") public Geometry parse(String line){
  if (_wktReader == null) {
    _wktReader=new WKTReader();
  }
  Geometry feature=null;
  Double x=null, y=null;
  String wktGeometry=null;
  Map<String,String> attrs=new HashMap<>();
  String[] values;
  if (attributeNames.size() == 1) {
    values=split(line,'\n',encapsulator);
  }
 else {
    values=split(line,delimiter,encapsulator);
  }
  if (values.length == 0) {
    log.info("String_Node_Str");
  }
  if (geometryCol < 0 && xCol < 0 && yCol < 0) {
    for (int i=0; i < values.length; i++) {
      if (WktGeometryUtils.isValidWktGeometry(values[i])) {
        attributeNames=new ArrayList<>(values.length);
        for (int j=0; j < values.length; j++) {
          if (j == i) {
            geometryCol=i;
          }
          attributeNames.add(Integer.toString(i));
        }
        break;
      }
    }
  }
  for (int i=0; i < values.length; i++) {
    if (i == geometryCol) {
      wktGeometry=values[i];
    }
 else     if (i == xCol) {
      try {
        if (values[i].trim().length() > 0) {
          x=Double.parseDouble(values[i]);
        }
 else {
          x=null;
        }
      }
 catch (      NumberFormatException e) {
        log.error("String_Node_Str" + values[i] + "String_Node_Str");
        x=null;
      }
    }
 else     if (i == yCol) {
      try {
        if (values[i].trim().length() > 0) {
          y=Double.parseDouble(values[i]);
        }
 else {
          y=null;
        }
      }
 catch (      NumberFormatException e) {
        log.error("String_Node_Str" + values[i] + "String_Node_Str");
        y=null;
      }
    }
    if (i < attributeNames.size()) {
      attrs.put(attributeNames.get(i),values[i]);
    }
  }
  if (wktGeometry != null) {
    try {
      feature=GeometryFactory.fromJTS(_wktReader.read(wktGeometry),attrs);
    }
 catch (    Exception e) {
      try {
        feature=GeometryFactory.fromJTS(_wktReader.read(WktGeometryUtils.wktGeometryFixer(wktGeometry)),attrs);
      }
 catch (      Exception e2) {
        log.error("String_Node_Str" + wktGeometry + "String_Node_Str");
      }
    }
  }
 else   if (geometryCol == -1 && xCol >= 0 && yCol >= 0) {
    if (x != null && y != null) {
      feature=GeometryFactory.createPoint(x,y,attrs);
    }
  }
  if (feature == null) {
    feature=GeometryFactory.createEmptyGeometry(attrs);
  }
  return feature;
}