[ 
https://issues.apache.org/jira/browse/NIFI-12885?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17825455#comment-17825455
 ] 

crissaegrim edited comment on NIFI-12885 at 3/11/24 9:28 PM:
-------------------------------------------------------------

Hi.  Thanks for the reply.

> Outside of this test class, did you observe runtime behavior changes in any 
> Processors?

Only in a custom processor I'm writing.  `getAsDate` used to return the time 
component too, so my tests there were breaking when we switch versions.

And agreed, on adding a method.  I looked through nifi code today.  I don't 
think any tests are testing for the time component in `MapRecord`.  I think 
that's the shortcoming here–`MapRecord` stopped providing a time component.


was (Author: JIRAUSER298664):
Hi.  Thanks for the reply.

> Outside of this test class, did you observe runtime behavior changes in any 
> Processors?

Only in a custom processor I'm writing.  `getAsDate` used to return the time 
component too, so my tests there were breaking when we switch versions.

And agreed, on adding a method.  I looked through nifi code today.  I don't 
think any tests are testing for the time component.  I think that's the 
shortcoming here–`MapRecord` stopped providing a time component, which I think 
could break a lot of folks' data when materialized as `MapRecord` and 
`getAsDate` is called and downstream expects a timestamp.

> MapRecord.getAsDate timestamp breaking bug
> ------------------------------------------
>
>                 Key: NIFI-12885
>                 URL: https://issues.apache.org/jira/browse/NIFI-12885
>             Project: Apache NiFi
>          Issue Type: Bug
>    Affects Versions: 2.0.0-M2
>            Reporter: crissaegrim
>            Priority: Major
>
> I think I found a breaking bug from this commit 
> [https://github.com/apache/nifi/commit/250fe90b348fac515ea597c1985ca432ac7c3ac3#diff-ce496d3f0fc5a7e8a3c0431972f7069b4cf1af2e94f3a199f595ef195eb5ebfa]
> The below passes in 1.20.0 but fails in 2.0
> {code:java}
>     @Test
>     void testBasic() throws Exception {
>         // setup
>         final String schemaText = "{" +
>                 "\"type\" : \"record\"," +
>                 "\"name\" : \"TestRecord\"," +
>                 "\"namespace\" : \"org.apache.nifi\"," +
>                 "\"fields\" : [ {" +
>                 "\"name\" : \"my_datestamp_field\"," +
>                 "\"type\" : {" +
>                 "\"type\" : \"long\"," +
>                 "\"logicalType\" : \"timestamp-millis\"" +
>                 "}" +
>                 "} ]" +
>               "}";
>         final RecordSchema schemaParsed = AvroTypeUtil.createSchema(new 
> Schema.Parser().parse(schemaText));
>         final HashMap<String, Object> item = new HashMap<>();
>         item.put("my_datestamp_field", "2022-01-01 10:00:00.000");
>         // act
>         final MapRecord record = new MapRecord(schemaParsed, item);
>         final Date myDateStampField = record.getAsDate("my_datestamp_field", 
> "yyyy-MM-dd HH:mm:ss.SSS");
>         // assert
>       // fails in 2.0; actual in 2.0.0-M2 is `1640995200000`
>         assertEquals(1641031200000L, myDateStampField.getTime());
>     }
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to