You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kafka.apache.org by ew...@apache.org on 2016/06/20 19:32:50 UTC
kafka git commit: KAFKA-3864: make field.get return field's default
value when needed
Repository: kafka
Updated Branches:
refs/heads/trunk b9f1c6032 -> 4544ee448
KAFKA-3864: make field.get return field's default value when needed
And not the containing struct's default value.
The contribution is my original work and that I license the work to the project under the project's open source license.
ewencp
Author: Rollulus <ro...@xs4all.nl>
Reviewers: Ewen Cheslack-Postava <ew...@confluent.io>
Closes #1528 from rollulus/kafka-3864
Project: http://git-wip-us.apache.org/repos/asf/kafka/repo
Commit: http://git-wip-us.apache.org/repos/asf/kafka/commit/4544ee44
Tree: http://git-wip-us.apache.org/repos/asf/kafka/tree/4544ee44
Diff: http://git-wip-us.apache.org/repos/asf/kafka/diff/4544ee44
Branch: refs/heads/trunk
Commit: 4544ee448703b8c1900adcb7a605380eb99a00a2
Parents: b9f1c60
Author: Rollulus <ro...@xs4all.nl>
Authored: Mon Jun 20 12:30:27 2016 -0700
Committer: Ewen Cheslack-Postava <me...@ewencp.org>
Committed: Mon Jun 20 12:30:27 2016 -0700
----------------------------------------------------------------------
.../java/org/apache/kafka/connect/data/Struct.java | 4 ++--
.../org/apache/kafka/connect/data/StructTest.java | 15 +++++++++++++++
2 files changed, 17 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/kafka/blob/4544ee44/connect/api/src/main/java/org/apache/kafka/connect/data/Struct.java
----------------------------------------------------------------------
diff --git a/connect/api/src/main/java/org/apache/kafka/connect/data/Struct.java b/connect/api/src/main/java/org/apache/kafka/connect/data/Struct.java
index a598259..f0bf865 100644
--- a/connect/api/src/main/java/org/apache/kafka/connect/data/Struct.java
+++ b/connect/api/src/main/java/org/apache/kafka/connect/data/Struct.java
@@ -85,8 +85,8 @@ public class Struct {
*/
public Object get(Field field) {
Object val = values[field.index()];
- if (val == null && schema.defaultValue() != null) {
- val = schema.defaultValue();
+ if (val == null && field.schema().defaultValue() != null) {
+ val = field.schema().defaultValue();
}
return val;
}
http://git-wip-us.apache.org/repos/asf/kafka/blob/4544ee44/connect/api/src/test/java/org/apache/kafka/connect/data/StructTest.java
----------------------------------------------------------------------
diff --git a/connect/api/src/test/java/org/apache/kafka/connect/data/StructTest.java b/connect/api/src/test/java/org/apache/kafka/connect/data/StructTest.java
index c73992b..11c9fb0 100644
--- a/connect/api/src/test/java/org/apache/kafka/connect/data/StructTest.java
+++ b/connect/api/src/test/java/org/apache/kafka/connect/data/StructTest.java
@@ -28,6 +28,7 @@ import java.util.Map;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotEquals;
+import static org.junit.Assert.assertNull;
public class StructTest {
@@ -160,6 +161,20 @@ public class StructTest {
struct.validate();
}
+ @Test
+ public void testMissingFieldWithDefaultValue() {
+ Schema schema = SchemaBuilder.struct().field("field", DEFAULT_FIELD_SCHEMA).build();
+ Struct struct = new Struct(schema);
+ assertEquals((byte) 0, struct.get("field"));
+ }
+
+ @Test
+ public void testMissingFieldWithoutDefaultValue() {
+ Schema schema = SchemaBuilder.struct().field("field", REQUIRED_FIELD_SCHEMA).build();
+ Struct struct = new Struct(schema);
+ assertNull(struct.get("field"));
+ }
+
@Test
public void testEquals() {