You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@nifi.apache.org by "ASF subversion and git services (Jira)" <ji...@apache.org> on 2023/06/08 21:20:00 UTC

[jira] [Commented] (NIFI-11655) GenerateRecord doesn't generate floats and doubles correctly when a schema is supplied

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

ASF subversion and git services commented on NIFI-11655:
--------------------------------------------------------

Commit 7884d934bd5c98b0684a951781f3c08798124136 in nifi's branch refs/heads/support/nifi-1.x from Matt Burgess
[ https://gitbox.apache.org/repos/asf?p=nifi.git;h=7884d934bd ]

NIFI-11655 Fixed float and double handling in GenerateRecord

This closes #7356

Signed-off-by: David Handermann <ex...@apache.org>
(cherry picked from commit 5e6f3abdd2c57fe2a8b81cdf2c97e7f1b9a0132e)


> GenerateRecord doesn't generate floats and doubles correctly when a schema is supplied
> --------------------------------------------------------------------------------------
>
>                 Key: NIFI-11655
>                 URL: https://issues.apache.org/jira/browse/NIFI-11655
>             Project: Apache NiFi
>          Issue Type: Bug
>          Components: Extensions
>            Reporter: Matt Burgess
>            Assignee: Matt Burgess
>            Priority: Major
>             Fix For: 1.latest, 2.latest
>
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> When a schema is supplied to GenerateRecord via the Schema Text property and it contains either float or double fields, the processor fails with an error:
> 2023-06-06 15:10:36,271 ERROR [Timer-Driven Process Thread-7] o.a.n.processors.standard.GenerateRecord GenerateRecord[id=9201dbe8-0188-1000-6d56-74ba1fc1e732] Processing failed
> org.apache.nifi.processor.exception.ProcessException: Record generation failed
> 	at org.apache.nifi.processors.standard.GenerateRecord.onTrigger(GenerateRecord.java:274)
> 	at org.apache.nifi.processor.AbstractProcessor.onTrigger(AbstractProcessor.java:27)
> 	at org.apache.nifi.controller.StandardProcessorNode.onTrigger(StandardProcessorNode.java:1360)
> 	at org.apache.nifi.controller.tasks.ConnectableTask.invoke(ConnectableTask.java:243)
> 	at org.apache.nifi.controller.scheduling.AbstractTimeBasedSchedulingAgent.lambda$doScheduleOnce$0(AbstractTimeBasedSchedulingAgent.java:59)
> 	at org.apache.nifi.engine.FlowEngine$2.run(FlowEngine.java:110)
> 	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
> 	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
> 	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
> 	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
> 	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
> 	at java.base/java.lang.Thread.run(Thread.java:829)
> Caused by: java.lang.ClassCastException: class org.apache.nifi.serialization.record.DataType cannot be cast to class org.apache.nifi.serialization.record.type.DecimalDataType (org.apache.nifi.serialization.record.DataType and org.apache.nifi.serialization.record.type.DecimalDataType are in unnamed module of loader org.apache.nifi.nar.NarClassLoader @7fd987ef)
> 	at org.apache.nifi.processors.standard.GenerateRecord.generateValueFromRecordField(GenerateRecord.java:316)
> 	at org.apache.nifi.processors.standard.GenerateRecord.lambda$onTrigger$0(GenerateRecord.java:238)
> 	at org.apache.nifi.controller.repository.StandardProcessSession.write(StandardProcessSession.java:3138)
> 	at org.apache.nifi.processors.standard.GenerateRecord.onTrigger(GenerateRecord.java:210)
> This is because GenerateRecord handles floats, doubles, and decimals the same way, by trying to treat them as DecimalDataTypes when floats and doubles are not compatible (they have their own distinct data types). The cases should be handled separately and unit tests added/augmented to verify.



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