Koji Kawamura created NIFI-4882: ----------------------------------- Summary: CSVRecordReader should utilize specified date/time/timestamp format at its convertSimpleIfPossible method Key: NIFI-4882 URL: https://issues.apache.org/jira/browse/NIFI-4882 Project: Apache NiFi Issue Type: Bug Components: Extensions Reporter: Koji Kawamura
CSVRecordReader.convertSimpleIfPossible method is used by ValidateRecord. The method does not coerce values to the target schema field type if the raw string representation in the input CSV file is not compatible. The type compatibility check is implemented as follows. But it does not use user specified date/time/timestamp format: {code} // This will return 'false' for input '01/01/1900' when user specified custom format 'MM/dd/YYYY' if (DataTypeUtils.isCompatibleDataType(trimmed, dataType)) { // The LAZY_DATE_FORMAT should be used to check compatibility, too. return DataTypeUtils.convertType(trimmed, dataType, LAZY_DATE_FORMAT, LAZY_TIME_FORMAT, LAZY_TIMESTAMP_FORMAT, fieldName); } else { return value; } {code} If input date strings have different format than the default format 'yyyy-MM-dd', then ValidateRecord processor can not validate input records. JacksonCSVRecordReader has the identical methods with CSVRecordReader. Those classes should have an abstract class. -- This message was sent by Atlassian JIRA (v7.6.3#76005)