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));
}
}