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

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


The following commit(s) were added to refs/heads/master by this push:
     new 4b08cf1  NIFI-6824 - Handling NPE of header value when consuming from 
Kafka
4b08cf1 is described below

commit 4b08cf116c852a0a969ba0bea0be0bc4811f20bb
Author: Matthew Formosa <[email protected]>
AuthorDate: Wed Oct 30 14:55:33 2019 +0100

    NIFI-6824 - Handling NPE of header value when consuming from Kafka
    
    Signed-off-by: Pierre Villard <[email protected]>
    
    This closes #3859.
---
 .../java/org/apache/nifi/processors/kafka/pubsub/ConsumerLease.java  | 5 +++--
 .../java/org/apache/nifi/processors/kafka/pubsub/ConsumerLease.java  | 5 +++--
 .../java/org/apache/nifi/processors/kafka/pubsub/ConsumerLease.java  | 5 +++--
 3 files changed, 9 insertions(+), 6 deletions(-)

diff --git 
a/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-0-11-processors/src/main/java/org/apache/nifi/processors/kafka/pubsub/ConsumerLease.java
 
b/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-0-11-processors/src/main/java/org/apache/nifi/processors/kafka/pubsub/ConsumerLease.java
index bcba8ac..62d6964 100644
--- 
a/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-0-11-processors/src/main/java/org/apache/nifi/processors/kafka/pubsub/ConsumerLease.java
+++ 
b/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-0-11-processors/src/main/java/org/apache/nifi/processors/kafka/pubsub/ConsumerLease.java
@@ -497,8 +497,9 @@ public abstract class ConsumerLease implements Closeable, 
ConsumerRebalanceListe
 
         for (final Header header : consumerRecord.headers()) {
             final String attributeName = header.key();
-            if (headerNamePattern.matcher(attributeName).matches()) {
-                attributes.put(attributeName, new String(header.value(), 
headerCharacterSet));
+            final byte[] attributeValue = header.value();
+            if (headerNamePattern.matcher(attributeName).matches() && 
attributeValue != null) {
+                attributes.put(attributeName, new String(attributeValue, 
headerCharacterSet));
             }
         }
 
diff --git 
a/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-1-0-processors/src/main/java/org/apache/nifi/processors/kafka/pubsub/ConsumerLease.java
 
b/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-1-0-processors/src/main/java/org/apache/nifi/processors/kafka/pubsub/ConsumerLease.java
index 0417614..af969a8 100644
--- 
a/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-1-0-processors/src/main/java/org/apache/nifi/processors/kafka/pubsub/ConsumerLease.java
+++ 
b/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-1-0-processors/src/main/java/org/apache/nifi/processors/kafka/pubsub/ConsumerLease.java
@@ -497,8 +497,9 @@ public abstract class ConsumerLease implements Closeable, 
ConsumerRebalanceListe
 
         for (final Header header : consumerRecord.headers()) {
             final String attributeName = header.key();
-            if (headerNamePattern.matcher(attributeName).matches()) {
-                attributes.put(attributeName, new String(header.value(), 
headerCharacterSet));
+            final byte[] attributeValue = header.value();
+            if (headerNamePattern.matcher(attributeName).matches() && 
attributeValue != null) {
+                attributes.put(attributeName, new String(attributeValue, 
headerCharacterSet));
             }
         }
 
diff --git 
a/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-2-0-processors/src/main/java/org/apache/nifi/processors/kafka/pubsub/ConsumerLease.java
 
b/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-2-0-processors/src/main/java/org/apache/nifi/processors/kafka/pubsub/ConsumerLease.java
index 77d53a9..2674dd9 100644
--- 
a/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-2-0-processors/src/main/java/org/apache/nifi/processors/kafka/pubsub/ConsumerLease.java
+++ 
b/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-2-0-processors/src/main/java/org/apache/nifi/processors/kafka/pubsub/ConsumerLease.java
@@ -497,8 +497,9 @@ public abstract class ConsumerLease implements Closeable, 
ConsumerRebalanceListe
 
         for (final Header header : consumerRecord.headers()) {
             final String attributeName = header.key();
-            if (headerNamePattern.matcher(attributeName).matches()) {
-                attributes.put(attributeName, new String(header.value(), 
headerCharacterSet));
+            final byte[] attributeValue = header.value();
+            if (headerNamePattern.matcher(attributeName).matches() && 
attributeValue != null) {
+                attributes.put(attributeName, new String(attributeValue, 
headerCharacterSet));
             }
         }
 

Reply via email to