You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@kafka.apache.org by "Jeremy Custenborder (JIRA)" <ji...@apache.org> on 2017/06/30 21:10:00 UTC

[jira] [Created] (KAFKA-5548) SchemaBuilder does not validate input.

Jeremy Custenborder created KAFKA-5548:
------------------------------------------

             Summary: SchemaBuilder does not validate input.
                 Key: KAFKA-5548
                 URL: https://issues.apache.org/jira/browse/KAFKA-5548
             Project: Kafka
          Issue Type: Bug
          Components: KafkaConnect
            Reporter: Jeremy Custenborder
            Assignee: Jeremy Custenborder
            Priority: Minor


SchemaBuilder.map(), SchemaBuilder.array(), and SchemaBuilder.field() do not validate input. This can cause weird NullPointerException exceptions later. For example I mistakenly called field("somefield", null), then later performed an operation against field.schema() which yielded a null. It would be preferable to throw an exception stating the issue. We could throw the a NPE but state what is null. Schema is null in this case for example.

{code:java}
  @Test(expected = NullPointerException.class)
  public void fieldNameNull() {
    Schema schema = SchemaBuilder.struct()
        .field(null, Schema.STRING_SCHEMA)
        .build();
  }

  @Test(expected = NullPointerException.class)
  public void fieldSchemaNull() {
    Schema schema = SchemaBuilder.struct()
        .field("fieldName", null)
        .build();
  }

  @Test(expected = NullPointerException.class)
  public void arraySchemaNull() {
    Schema schema = SchemaBuilder.array(Schema.STRING_SCHEMA)
        .build();
  }

  @Test(expected = NullPointerException.class)
  public void mapKeySchemaNull() {
    Schema schema = SchemaBuilder.map(null, Schema.STRING_SCHEMA)
        .build();
  }

  @Test(expected = NullPointerException.class)
  public void mapValueSchemaNull() {
    Schema schema = SchemaBuilder.map(Schema.STRING_SCHEMA, null)
        .build();
  }
{code}




--
This message was sent by Atlassian JIRA
(v6.4.14#64029)