You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@avro.apache.org by rs...@apache.org on 2022/02/18 07:09:36 UTC

[avro] branch branch-1.11 updated: AVRO-3382 (java) - require Schema argument be != null when creating a Schema.Field (#1550)

This is an automated email from the ASF dual-hosted git repository.

rskraba pushed a commit to branch branch-1.11
in repository https://gitbox.apache.org/repos/asf/avro.git


The following commit(s) were added to refs/heads/branch-1.11 by this push:
     new 198cccd  AVRO-3382 (java) - require Schema argument be != null when creating a Schema.Field (#1550)
198cccd is described below

commit 198cccdbae9ff40b7d9eff34dd2636ece298ae6a
Author: Radai Rosenblatt <ra...@gmail.com>
AuthorDate: Thu Feb 17 23:06:45 2022 -0800

    AVRO-3382 (java) - require Schema argument be != null when creating a Schema.Field (#1550)
    
    * AVRO-3382 (java) - require Schema argument be != null when creating a Schema
    
    * address review comments
    
    Co-authored-by: Radai Rosenblatt <rr...@rrosenbl-mn2.linkedin.biz>
---
 lang/java/avro/src/main/java/org/apache/avro/Schema.java     | 2 +-
 lang/java/avro/src/test/java/org/apache/avro/TestSchema.java | 5 +++++
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/lang/java/avro/src/main/java/org/apache/avro/Schema.java b/lang/java/avro/src/main/java/org/apache/avro/Schema.java
index c58a852..ae0015d 100644
--- a/lang/java/avro/src/main/java/org/apache/avro/Schema.java
+++ b/lang/java/avro/src/main/java/org/apache/avro/Schema.java
@@ -554,7 +554,7 @@ public abstract class Schema extends JsonProperties implements Serializable {
     Field(String name, Schema schema, String doc, JsonNode defaultValue, boolean validateDefault, Order order) {
       super(FIELD_RESERVED);
       this.name = validateName(name);
-      this.schema = schema;
+      this.schema = Objects.requireNonNull(schema, "schema is required and cannot be null");
       this.doc = doc;
       this.defaultValue = validateDefault ? validateDefault(name, schema, defaultValue) : defaultValue;
       this.order = Objects.requireNonNull(order, "Order cannot be null");
diff --git a/lang/java/avro/src/test/java/org/apache/avro/TestSchema.java b/lang/java/avro/src/test/java/org/apache/avro/TestSchema.java
index 4b2a78b..acfbcb5 100644
--- a/lang/java/avro/src/test/java/org/apache/avro/TestSchema.java
+++ b/lang/java/avro/src/test/java/org/apache/avro/TestSchema.java
@@ -361,4 +361,9 @@ public class TestSchema {
   public void testEnumSymbolAsNull() {
     Schema.createEnum("myField", "doc", "namespace", Collections.singletonList(null));
   }
+
+  @Test(expected = NullPointerException.class)
+  public void testSchemaFieldWithoutSchema() {
+    new Schema.Field("f", null);
+  }
 }