Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.Objects;
Expand All @@ -38,11 +37,7 @@ public RecordHeaders() {
}

public RecordHeaders(Header[] headers) {
if (headers == null) {
this.headers = new ArrayList<>();
} else {
this.headers = new ArrayList<>(Arrays.asList(headers));
}
this(headers == null ? null : Arrays.asList(headers));
}

public RecordHeaders(Iterable<Header> headers) {
Expand All @@ -51,12 +46,12 @@ public RecordHeaders(Iterable<Header> headers) {
this.headers = new ArrayList<>();
} else if (headers instanceof RecordHeaders) {
this.headers = new ArrayList<>(((RecordHeaders) headers).headers);
} else if (headers instanceof Collection) {
this.headers = new ArrayList<>((Collection<Header>) headers);
} else {
this.headers = new ArrayList<>();
for (Header header : headers)
for (Header header : headers) {
Objects.requireNonNull(header, "Header cannot be null.");
this.headers.add(header);
}
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertThrows;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;

Expand Down Expand Up @@ -206,9 +207,15 @@ public void testNew() throws IOException {
assertEquals(2, getCount(newHeaders));
}

@Test(expected = NullPointerException.class)
@Test
public void shouldThrowNpeWhenAddingNullHeader() {
new RecordHeaders().add(null);
final RecordHeaders recordHeaders = new RecordHeaders();
assertThrows(NullPointerException.class, () -> recordHeaders.add(null));
}

@Test
public void shouldThrowNpeWhenAddingCollectionWithNullHeader() {
assertThrows(NullPointerException.class, () -> new RecordHeaders(new Header[1]));
}

private int getCount(Headers headers) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ public ConnectHeaders(Iterable<Header> original) {
} else {
headers = new LinkedList<>();
for (Header header : original) {
Objects.requireNonNull(header, "Unable to add a null header.");
headers.add(header);
}
}
Expand All @@ -75,7 +76,7 @@ public int size() {

@Override
public boolean isEmpty() {
return headers == null ? true : headers.isEmpty();
return headers == null || headers.isEmpty();
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Collections;
import java.util.GregorianCalendar;
Expand All @@ -47,6 +48,7 @@
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNotSame;
import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertThrows;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;

Expand Down Expand Up @@ -498,6 +500,18 @@ public void shouldDuplicateAndAlwaysReturnEquivalentButDifferentObject() {
assertNotSame(headers, headers.duplicate());
}

@Test
public void shouldNotAllowToAddNullHeader() {
final ConnectHeaders headers = new ConnectHeaders();
assertThrows(NullPointerException.class, () -> headers.add(null));
}

@Test
public void shouldThrowNpeWhenAddingCollectionWithNullHeader() {
final Iterable<Header> header = Arrays.asList(new ConnectHeader[1]);
assertThrows(NullPointerException.class, () -> new ConnectHeaders(header));
}

protected void assertSchemaMatches(Schema schema, Object value) {
headers.checkSchemaMatches(new SchemaAndValue(schema.schema(), value));
}
Expand Down