This is an automated email from the ASF dual-hosted git repository.

exceptionfactory pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/nifi.git

commit 5e6f3abdd2c57fe2a8b81cdf2c97e7f1b9a0132e
Author: Matt Burgess <[email protected]>
AuthorDate: Wed Jun 7 17:13:16 2023 -0400

    NIFI-11655 Fixed float and double handling in GenerateRecord
    
    This closes #7356
    
    Signed-off-by: David Handermann <[email protected]>
---
 .../java/org/apache/nifi/processors/standard/GenerateRecord.java  | 7 ++++++-
 .../src/test/resources/TestGenerateRecord/nested_nullable.avsc    | 8 +++++++-
 2 files changed, 13 insertions(+), 2 deletions(-)

diff --git 
a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GenerateRecord.java
 
b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GenerateRecord.java
index 39f441aa5f..ae639709f2 100644
--- 
a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GenerateRecord.java
+++ 
b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GenerateRecord.java
@@ -59,6 +59,7 @@ import org.apache.nifi.serialization.record.type.MapDataType;
 import org.apache.nifi.serialization.record.type.RecordDataType;
 import org.apache.nifi.util.StringUtils;
 
+import java.math.BigDecimal;
 import java.math.BigInteger;
 import java.time.LocalDate;
 import java.time.ZoneId;
@@ -310,9 +311,13 @@ public class GenerateRecord extends AbstractProcessor {
                 return (char) 
faker.number().numberBetween(Character.MIN_VALUE, Character.MAX_VALUE);
             case DATE:
                 return FakerUtils.getFakeData(DEFAULT_DATE_PROPERTY_NAME, 
faker);
-            case DECIMAL:
             case DOUBLE:
+                return faker.number().randomDouble(6, Long.MIN_VALUE, 
Long.MAX_VALUE);
             case FLOAT:
+                final double randomDouble = faker.number().randomDouble(6, 
Long.MIN_VALUE, Long.MAX_VALUE);
+                final BigDecimal asBigDecimal = new BigDecimal(randomDouble);
+                return asBigDecimal.floatValue();
+            case DECIMAL:
                 return faker.number().randomDouble(((DecimalDataType) 
recordField.getDataType()).getScale(), Long.MIN_VALUE, Long.MAX_VALUE);
             case INT:
                 return faker.number().numberBetween(Integer.MIN_VALUE, 
Integer.MAX_VALUE);
diff --git 
a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestGenerateRecord/nested_nullable.avsc
 
b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestGenerateRecord/nested_nullable.avsc
index f7a07ad1a0..d52b451c83 100644
--- 
a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestGenerateRecord/nested_nullable.avsc
+++ 
b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestGenerateRecord/nested_nullable.avsc
@@ -18,7 +18,13 @@
           }, {
             "name": "Name",
             "type": ["null", "string"]
-          }]
+          }, {
+              "name": "TestFloat",
+              "type": ["null", "float"]
+          }, {
+              "name": "TestDouble",
+              "type": ["null", "double"]
+            }]
         }]
       }, {
         "name": "EventID",

Reply via email to