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

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


The following commit(s) were added to refs/heads/main by this push:
     new c08996515b NIFI-10106 Avoid NPE in 
LookupRecord.createLookupCoordinates (#6111)
c08996515b is described below

commit c08996515bbf76253563e6f050b32dd8549919e7
Author: tpalfy <[email protected]>
AuthorDate: Tue Jun 21 23:03:44 2022 +0200

    NIFI-10106 Avoid NPE in LookupRecord.createLookupCoordinates (#6111)
---
 .../org/apache/nifi/processors/standard/LookupRecord.java   | 13 ++++++++++++-
 .../apache/nifi/processors/standard/TestLookupRecord.java   | 13 +++++++++++++
 2 files changed, 25 insertions(+), 1 deletion(-)

diff --git 
a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/LookupRecord.java
 
b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/LookupRecord.java
index 4a25736229..7301c26f63 100644
--- 
a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/LookupRecord.java
+++ 
b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/LookupRecord.java
@@ -682,7 +682,18 @@ public class LookupRecord extends AbstractProcessor {
                 }
 
                 final FieldValue fieldValue = lookupFieldValues.get(0);
-                final Object coordinateValue = 
DataTypeUtils.convertType(fieldValue.getValue(), 
fieldValue.getField().getDataType(), null, null, null, 
fieldValue.getField().getFieldName());
+                final Object coordinateValue = DataTypeUtils.convertType(
+                        fieldValue.getValue(),
+                        Optional.ofNullable(fieldValue.getField())
+                                .map(RecordField::getDataType)
+                                
.orElse(DataTypeUtils.inferDataType(fieldValue.getValue(), 
RecordFieldType.STRING.getDataType())),
+                        null,
+                        null,
+                        null,
+                        Optional.ofNullable(fieldValue.getField())
+                                .map(RecordField::getFieldName)
+                                .orElse(coordinateKey)
+                );
                 lookupCoordinates.put(coordinateKey, coordinateValue);
             }
 
diff --git 
a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestLookupRecord.java
 
b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestLookupRecord.java
index 89a0ed3759..2b15dfe2da 100644
--- 
a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestLookupRecord.java
+++ 
b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestLookupRecord.java
@@ -569,6 +569,19 @@ public class TestLookupRecord {
         out.assertContentEquals(new 
File("src/test/resources/TestLookupRecord/lookup-array-output-unmatched.json").toPath());
     }
 
+
+    @Test
+    public void testLiteralCoordinate() {
+        lookupService.addValue("lookupKey", "lookupValue");
+
+        runner.setProperty("lookup", "toString('lookupKey', 'UTF-8')");
+
+        runner.enqueue("");
+        runner.run();
+
+        runner.assertAllFlowFilesTransferred(LookupRecord.REL_MATCHED, 1);
+    }
+
     private static class MapLookup extends AbstractControllerService 
implements StringLookupService {
         protected final Map<String, String> values = new HashMap<>();
         private Map<String, Object> expectedContext;

Reply via email to