From d9cf1857f8dfc6061c2ab2f00d919e5fa482c4b0 Mon Sep 17 00:00:00 2001 From: Rakesh Kumar Singh Date: Mon, 18 May 2026 23:10:29 +0530 Subject: [PATCH] NIFI-14472: Fix NPE in PutKinesisFirehose and KubernetesConfigMapStateProvider teardown - Collapsed two-step computeIfAbsent/get into a single chained call in PutKinesisFirehose to eliminate the redundant map lookup. - Guarded KubernetesConfigMapStateProvider.shutdown() against null kubernetesClient and logger so it is safe to call on an uninitialized provider. --- .../aws/kinesis/firehose/PutKinesisFirehose.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/kinesis/firehose/PutKinesisFirehose.java b/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/kinesis/firehose/PutKinesisFirehose.java index 25d6e027c49c..fa2fa1396f96 100644 --- a/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/kinesis/firehose/PutKinesisFirehose.java +++ b/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/kinesis/firehose/PutKinesisFirehose.java @@ -134,8 +134,11 @@ public void onTrigger(final ProcessContext context, final ProcessSession session for (final FlowFile flowFile : flowFiles) { final String firehoseStreamName = context.getProperty(KINESIS_FIREHOSE_DELIVERY_STREAM_NAME).evaluateAttributeExpressions(flowFile).getValue(); - recordHash.computeIfAbsent(firehoseStreamName, k -> new ArrayList<>()); - session.read(flowFile, in -> recordHash.get(firehoseStreamName).add(Record.builder().data(SdkBytes.fromInputStream(in)).build())); + session.read(flowFile, in -> + recordHash + .computeIfAbsent(firehoseStreamName, k -> new ArrayList<>()) + .add(Record.builder().data(SdkBytes.fromInputStream(in)).build()) + ); final List flowFilesForStream = hashFlowFiles.computeIfAbsent(firehoseStreamName, k -> new ArrayList<>()); flowFilesForStream.add(flowFile);