Uploaded image for project: 'Apache Avro'
  1. Apache Avro
  2. AVRO-1007

Insufficient validation in generated specific record builder implementations

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 1.6.1
    • 1.6.2
    • None

    Description

      The are two main problems with the generated build() method in specific record builders:

      • For non-primitive types, if there is no default value and the user does not set the value, build() will execute successfully without throwing an exception
        • Instead, an AvroRuntimeException should be thrown with an exception message indicating the name of the required field that was not set
      • For primitive types, if there is no default value and the user does not set the value, an AvroRuntimeException is thrown with the 'cause' set to a NullPointerException, which is not very helpful
        • The NPE comes from attempting to set the primitive field to the result of defaultValue(), which is null

      Attachments

        1. AVRO-1007-v4.patch
          11 kB
          Scott Carey
        2. AVRO-1007-v3.patch
          11 kB
          James Baldassari
        3. AVRO-1007-v2.patch
          8 kB
          James Baldassari
        4. AVRO-1007.patch
          3 kB
          James Baldassari
        5. AVRO-1007.patch
          5 kB
          Doug Cutting
        6. AVRO-1007.patch
          6 kB
          Doug Cutting
        7. AVRO-1007.patch
          7 kB
          Doug Cutting

        Activity

          People

            jbaldassari James Baldassari
            jbaldassari James Baldassari
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: