Repository: kafka Updated Branches: refs/heads/0.10.0 3178ecf11 -> 8ec8267c2
KAFKA-3690: Avoid to pass null to UnmodifiableMap Author: Liquan Pei <[email protected]> Reviewers: Jason Gustafson <[email protected]>, Ismael Juma <[email protected]>, Ewen Cheslack-Postava <[email protected]> Closes #1360 from Ishiihara/avoid-to-pass-null (cherry picked from commit bd8681cdd51d2878ea917941abe335f68a373716) Signed-off-by: Ewen Cheslack-Postava <[email protected]> Project: http://git-wip-us.apache.org/repos/asf/kafka/repo Commit: http://git-wip-us.apache.org/repos/asf/kafka/commit/8ec8267c Tree: http://git-wip-us.apache.org/repos/asf/kafka/tree/8ec8267c Diff: http://git-wip-us.apache.org/repos/asf/kafka/diff/8ec8267c Branch: refs/heads/0.10.0 Commit: 8ec8267c2666e423414305e5daf89c1ce5fd96bd Parents: 3178ecf Author: Liquan Pei <[email protected]> Authored: Wed May 11 13:06:20 2016 -0700 Committer: Ewen Cheslack-Postava <[email protected]> Committed: Wed May 11 13:06:46 2016 -0700 ---------------------------------------------------------------------- .../java/org/apache/kafka/connect/data/SchemaBuilder.java | 2 +- .../org/apache/kafka/connect/data/SchemaBuilderTest.java | 9 ++++++++- .../kafka/connect/storage/KafkaConfigBackingStore.java | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/kafka/blob/8ec8267c/connect/api/src/main/java/org/apache/kafka/connect/data/SchemaBuilder.java ---------------------------------------------------------------------- diff --git a/connect/api/src/main/java/org/apache/kafka/connect/data/SchemaBuilder.java b/connect/api/src/main/java/org/apache/kafka/connect/data/SchemaBuilder.java index 3d2f5cc..32045f9 100644 --- a/connect/api/src/main/java/org/apache/kafka/connect/data/SchemaBuilder.java +++ b/connect/api/src/main/java/org/apache/kafka/connect/data/SchemaBuilder.java @@ -181,7 +181,7 @@ public class SchemaBuilder implements Schema { @Override public Map<String, String> parameters() { - return Collections.unmodifiableMap(parameters); + return parameters == null ? null : Collections.unmodifiableMap(parameters); } /** http://git-wip-us.apache.org/repos/asf/kafka/blob/8ec8267c/connect/api/src/test/java/org/apache/kafka/connect/data/SchemaBuilderTest.java ---------------------------------------------------------------------- diff --git a/connect/api/src/test/java/org/apache/kafka/connect/data/SchemaBuilderTest.java b/connect/api/src/test/java/org/apache/kafka/connect/data/SchemaBuilderTest.java index 62020f3..fdbaa0a 100644 --- a/connect/api/src/test/java/org/apache/kafka/connect/data/SchemaBuilderTest.java +++ b/connect/api/src/test/java/org/apache/kafka/connect/data/SchemaBuilderTest.java @@ -252,7 +252,14 @@ public class SchemaBuilderTest { @Test public void testMapBuilder() { - Schema schema = SchemaBuilder.map(Schema.INT8_SCHEMA, Schema.INT8_SCHEMA).build(); + // SchemaBuilder should also pass the check + Schema schema = SchemaBuilder.map(Schema.INT8_SCHEMA, Schema.INT8_SCHEMA); + assertTypeAndDefault(schema, Schema.Type.MAP, false, null); + assertEquals(schema.keySchema(), Schema.INT8_SCHEMA); + assertEquals(schema.valueSchema(), Schema.INT8_SCHEMA); + assertNoMetadata(schema); + + schema = SchemaBuilder.map(Schema.INT8_SCHEMA, Schema.INT8_SCHEMA).build(); assertTypeAndDefault(schema, Schema.Type.MAP, false, null); assertEquals(schema.keySchema(), Schema.INT8_SCHEMA); assertEquals(schema.valueSchema(), Schema.INT8_SCHEMA); http://git-wip-us.apache.org/repos/asf/kafka/blob/8ec8267c/connect/runtime/src/main/java/org/apache/kafka/connect/storage/KafkaConfigBackingStore.java ---------------------------------------------------------------------- diff --git a/connect/runtime/src/main/java/org/apache/kafka/connect/storage/KafkaConfigBackingStore.java b/connect/runtime/src/main/java/org/apache/kafka/connect/storage/KafkaConfigBackingStore.java index 9a93a4e..af8efee 100644 --- a/connect/runtime/src/main/java/org/apache/kafka/connect/storage/KafkaConfigBackingStore.java +++ b/connect/runtime/src/main/java/org/apache/kafka/connect/storage/KafkaConfigBackingStore.java @@ -179,7 +179,7 @@ public class KafkaConfigBackingStore implements ConfigBackingStore { // converter/serializer changes causing keys to change. We need to absolutely ensure that the keys remain precisely // the same. public static final Schema CONNECTOR_CONFIGURATION_V0 = SchemaBuilder.struct() - .field("properties", SchemaBuilder.map(Schema.STRING_SCHEMA, Schema.OPTIONAL_STRING_SCHEMA)) + .field("properties", SchemaBuilder.map(Schema.STRING_SCHEMA, Schema.OPTIONAL_STRING_SCHEMA).build()) .build(); public static final Schema TASK_CONFIGURATION_V0 = CONNECTOR_CONFIGURATION_V0; public static final Schema CONNECTOR_TASKS_COMMIT_V0 = SchemaBuilder.struct()
