Program: 131934
Project: 131934
Buggy source:
@Override public Object executeTransform(final Object input){
  line++;
  if (skipFrom > -1) {
    if (skipTo > -1) {
      if (line >= skipFrom && line <= skipTo)       return null;
    }
 else     if (line >= skipFrom)     return null;
  }
  final List<String> fields=OStringSerializerHelper.smartSplit(input.toString(),new char[]{separator},0,-1,false,false,false,false);
  if (columnNames == null) {
    if (!columnsOnFirstLine)     throw new OTransformException("String_Node_Str");
    columnNames=fields;
    for (int i=0; i < columnNames.size(); ++i)     columnNames.set(i,OStringSerializerHelper.getStringContent(columnNames.get(i)));
    return null;
  }
  final ODocument doc=new ODocument();
  for (int i=0; i < columnNames.size() && i < fields.size(); ++i) {
    final String fieldName=columnNames.get(i);
    Object fieldValue=null;
    try {
      final String fieldStringValue=fields.get(i);
      final OType fieldType=columnTypes != null ? columnTypes.get(i) : null;
      if (fieldType != null && fieldType != OType.ANY) {
        fieldValue=OStringSerializerHelper.getStringContent(fieldStringValue);
        try {
          fieldValue=OType.convert(fieldValue,fieldType.getDefaultJavaType());
          doc.field(fieldName,fieldValue);
        }
 catch (        Exception e) {
          processor.getStats().incrementErrors();
          log("String_Node_Str",processor.getExtractor().getProgress(),fieldName,i,fieldValue,fieldValue.getClass().getName(),fieldType);
        }
      }
 else       if (fieldStringValue != null && !fieldStringValue.isEmpty()) {
        final char firstChar=fieldStringValue.charAt(0);
        if (firstChar == stringCharacter)         fieldValue=OStringSerializerHelper.getStringContent(fieldStringValue);
 else         if (Character.isDigit(firstChar))         if (fieldStringValue.contains("String_Node_Str") || fieldStringValue.contains("String_Node_Str"))         try {
          fieldValue=Float.parseFloat(fieldStringValue);
        }
 catch (        Exception e) {
          fieldValue=Double.parseDouble(fieldStringValue);
        }
 else         try {
          fieldValue=Integer.parseInt(fieldStringValue);
        }
 catch (        Exception e) {
          fieldValue=Long.parseLong(fieldStringValue);
        }
 else         fieldValue=fieldStringValue;
        if (nullValue != null && nullValue.equals(fieldValue))         continue;
        doc.field(fieldName,fieldValue);
      }
    }
 catch (    Exception e) {
      processor.getStats().incrementErrors();
      debug("String_Node_Str",fieldName,fieldValue,e.toString());
    }
  }
  return doc;
}

Fixed version (ground truth):
@Override public Object executeTransform(final Object input){
  line++;
  if (skipFrom > -1) {
    if (skipTo > -1) {
      if (line >= skipFrom && line <= skipTo)       return null;
    }
 else     if (line >= skipFrom)     return null;
  }
  final List<String> fields=OStringSerializerHelper.smartSplit(input.toString(),new char[]{separator},0,-1,false,false,false,false);
  if (columnNames == null) {
    if (!columnsOnFirstLine)     throw new OTransformException(getName() + "String_Node_Str");
    columnNames=fields;
    for (int i=0; i < columnNames.size(); ++i)     columnNames.set(i,OStringSerializerHelper.getStringContent(columnNames.get(i)));
    return null;
  }
  final ODocument doc=new ODocument();
  for (int i=0; i < columnNames.size() && i < fields.size(); ++i) {
    final String fieldName=columnNames.get(i);
    Object fieldValue=null;
    try {
      final String fieldStringValue=fields.get(i);
      final OType fieldType=columnTypes != null ? columnTypes.get(i) : null;
      if (fieldType != null && fieldType != OType.ANY) {
        fieldValue=OStringSerializerHelper.getStringContent(fieldStringValue);
        try {
          fieldValue=OType.convert(fieldValue,fieldType.getDefaultJavaType());
          doc.field(fieldName,fieldValue);
        }
 catch (        Exception e) {
          processor.getStats().incrementErrors();
          log("String_Node_Str",processor.getExtractor().getProgress(),fieldName,i,fieldValue,fieldValue.getClass().getName(),fieldType);
        }
      }
 else       if (fieldStringValue != null && !fieldStringValue.isEmpty()) {
        final char firstChar=fieldStringValue.charAt(0);
        if (firstChar == stringCharacter)         fieldValue=OStringSerializerHelper.getStringContent(fieldStringValue);
 else         if (Character.isDigit(firstChar))         if (fieldStringValue.contains("String_Node_Str") || fieldStringValue.contains("String_Node_Str"))         try {
          fieldValue=Float.parseFloat(fieldStringValue);
        }
 catch (        Exception e) {
          fieldValue=Double.parseDouble(fieldStringValue);
        }
 else         try {
          fieldValue=Integer.parseInt(fieldStringValue);
        }
 catch (        Exception e) {
          fieldValue=Long.parseLong(fieldStringValue);
        }
 else         fieldValue=fieldStringValue;
        if (nullValue != null && nullValue.equals(fieldValue))         continue;
        doc.field(fieldName,fieldValue);
      }
    }
 catch (    Exception e) {
      processor.getStats().incrementErrors();
      debug("String_Node_Str",fieldName,fieldValue,e.toString());
    }
  }
  return doc;
}