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;