You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kafka.apache.org by rh...@apache.org on 2019/04/22 22:12:33 UTC
[kafka] branch 2.0 updated: KAFKA-8277: Fix NPEs in several methods
of ConnectHeaders (#6550)
This is an automated email from the ASF dual-hosted git repository.
rhauch pushed a commit to branch 2.0
in repository https://gitbox.apache.org/repos/asf/kafka.git
The following commit(s) were added to refs/heads/2.0 by this push:
new d148886 KAFKA-8277: Fix NPEs in several methods of ConnectHeaders (#6550)
d148886 is described below
commit d148886e643aa3f3264d119820ade0e660932cc7
Author: Sebastián Ortega <se...@letgo.com>
AuthorDate: Mon Apr 22 23:19:58 2019 +0200
KAFKA-8277: Fix NPEs in several methods of ConnectHeaders (#6550)
Replace `headers.isEmpty()` by calls to `isEmpty()` as the latter does a null check on heathers (that is lazily created).
Author: Sebastián Ortega <se...@letgo.com>
Reviewers: Konstantine Karantasis <ko...@confluent.io>, Arjun Satish <arjunconfluent.io>, Randall Hauch <rh...@gmail.com>
---
.../kafka/connect/header/ConnectHeaders.java | 10 +++++-----
.../kafka/connect/header/ConnectHeadersTest.java | 23 +++++++++++++++++++++-
2 files changed, 27 insertions(+), 6 deletions(-)
diff --git a/connect/api/src/main/java/org/apache/kafka/connect/header/ConnectHeaders.java b/connect/api/src/main/java/org/apache/kafka/connect/header/ConnectHeaders.java
index 185ba65..0b5c484 100644
--- a/connect/api/src/main/java/org/apache/kafka/connect/header/ConnectHeaders.java
+++ b/connect/api/src/main/java/org/apache/kafka/connect/header/ConnectHeaders.java
@@ -274,7 +274,7 @@ public class ConnectHeaders implements Headers {
@Override
public Headers remove(String key) {
checkKey(key);
- if (!headers.isEmpty()) {
+ if (!isEmpty()) {
Iterator<Header> iterator = iterator();
while (iterator.hasNext()) {
if (iterator.next().key().equals(key)) {
@@ -287,7 +287,7 @@ public class ConnectHeaders implements Headers {
@Override
public Headers retainLatest() {
- if (!headers.isEmpty()) {
+ if (!isEmpty()) {
Set<String> keys = new HashSet<>();
ListIterator<Header> iter = headers.listIterator(headers.size());
while (iter.hasPrevious()) {
@@ -304,7 +304,7 @@ public class ConnectHeaders implements Headers {
@Override
public Headers retainLatest(String key) {
checkKey(key);
- if (!headers.isEmpty()) {
+ if (!isEmpty()) {
boolean found = false;
ListIterator<Header> iter = headers.listIterator(headers.size());
while (iter.hasPrevious()) {
@@ -322,7 +322,7 @@ public class ConnectHeaders implements Headers {
@Override
public Headers apply(String key, HeaderTransform transform) {
checkKey(key);
- if (!headers.isEmpty()) {
+ if (!isEmpty()) {
ListIterator<Header> iter = headers.listIterator();
while (iter.hasNext()) {
Header orig = iter.next();
@@ -341,7 +341,7 @@ public class ConnectHeaders implements Headers {
@Override
public Headers apply(HeaderTransform transform) {
- if (!headers.isEmpty()) {
+ if (!isEmpty()) {
ListIterator<Header> iter = headers.listIterator();
while (iter.hasNext()) {
Header orig = iter.next();
diff --git a/connect/api/src/test/java/org/apache/kafka/connect/header/ConnectHeadersTest.java b/connect/api/src/test/java/org/apache/kafka/connect/header/ConnectHeadersTest.java
index 343bc5d..72418ba 100644
--- a/connect/api/src/test/java/org/apache/kafka/connect/header/ConnectHeadersTest.java
+++ b/connect/api/src/test/java/org/apache/kafka/connect/header/ConnectHeadersTest.java
@@ -119,6 +119,14 @@ public class ConnectHeadersTest {
}
@Test
+ public void shouldRetainLatestWhenEmpty() {
+ headers.retainLatest(other);
+ headers.retainLatest(key);
+ headers.retainLatest();
+ assertTrue(headers.isEmpty());
+ }
+
+ @Test
public void shouldAddMultipleHeadersWithSameKeyAndRetainLatest() {
populate(headers);
@@ -180,6 +188,12 @@ public class ConnectHeadersTest {
}
@Test
+ public void shouldRemoveAllHeadersWithSameKeyWhenEmpty() {
+ headers.remove(key);
+ assertNoHeaderWithKey(key);
+ }
+
+ @Test
public void shouldRemoveAllHeadersWithSameKey() {
populate(headers);
@@ -212,6 +226,13 @@ public class ConnectHeadersTest {
}
@Test
+ public void shouldTransformHeadersWhenEmpty() {
+ headers.apply(appendToKey("-suffix"));
+ headers.apply(key, appendToKey("-suffix"));
+ assertTrue(headers.isEmpty());
+ }
+
+ @Test
public void shouldTransformHeaders() {
populate(headers);
@@ -544,4 +565,4 @@ public class ConnectHeadersTest {
assertSame(schema, header.schema());
assertSame(value, header.value());
}
-}
\ No newline at end of file
+}