public class org.apache.avro.generic.GenericDatumWriter<D> implements org.apache.avro.io.DatumWriter<D>
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.avro.generic.GenericDatumWriter
  super_class: java.lang.Object
{
  private final org.apache.avro.generic.GenericData data;
    descriptor: Lorg/apache/avro/generic/GenericData;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private org.apache.avro.Schema root;
    descriptor: Lorg/apache/avro/Schema;
    flags: (0x0002) ACC_PRIVATE

  private static volatile int[] $SWITCH_TABLE$org$apache$avro$Schema$Type;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.avro.generic.GenericDatumWriter this
         0: .line 44
            aload 0 /* this */
            invokestatic org.apache.avro.generic.GenericData.get:()Lorg/apache/avro/generic/GenericData;
            invokespecial org.apache.avro.generic.GenericDatumWriter.<init>:(Lorg/apache/avro/generic/GenericData;)V
         1: .line 45
            return
        end local 0 // org.apache.avro.generic.GenericDatumWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/avro/generic/GenericDatumWriter<TD;>;

  protected void <init>(org.apache.avro.generic.GenericData);
    descriptor: (Lorg/apache/avro/generic/GenericData;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.avro.generic.GenericDatumWriter this
        start local 1 // org.apache.avro.generic.GenericData data
         0: .line 47
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 48
            aload 0 /* this */
            aload 1 /* data */
            putfield org.apache.avro.generic.GenericDatumWriter.data:Lorg/apache/avro/generic/GenericData;
         2: .line 49
            return
        end local 1 // org.apache.avro.generic.GenericData data
        end local 0 // org.apache.avro.generic.GenericDatumWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/avro/generic/GenericDatumWriter<TD;>;
            0    3     1  data  Lorg/apache/avro/generic/GenericData;
    MethodParameters:
      Name  Flags
      data  

  public void <init>(org.apache.avro.Schema);
    descriptor: (Lorg/apache/avro/Schema;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.avro.generic.GenericDatumWriter this
        start local 1 // org.apache.avro.Schema root
         0: .line 52
            aload 0 /* this */
            invokespecial org.apache.avro.generic.GenericDatumWriter.<init>:()V
         1: .line 53
            aload 0 /* this */
            aload 1 /* root */
            invokevirtual org.apache.avro.generic.GenericDatumWriter.setSchema:(Lorg/apache/avro/Schema;)V
         2: .line 54
            return
        end local 1 // org.apache.avro.Schema root
        end local 0 // org.apache.avro.generic.GenericDatumWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/avro/generic/GenericDatumWriter<TD;>;
            0    3     1  root  Lorg/apache/avro/Schema;
    MethodParameters:
      Name  Flags
      root  

  public void <init>(org.apache.avro.Schema, org.apache.avro.generic.GenericData);
    descriptor: (Lorg/apache/avro/Schema;Lorg/apache/avro/generic/GenericData;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.apache.avro.generic.GenericDatumWriter this
        start local 1 // org.apache.avro.Schema root
        start local 2 // org.apache.avro.generic.GenericData data
         0: .line 57
            aload 0 /* this */
            aload 2 /* data */
            invokespecial org.apache.avro.generic.GenericDatumWriter.<init>:(Lorg/apache/avro/generic/GenericData;)V
         1: .line 58
            aload 0 /* this */
            aload 1 /* root */
            invokevirtual org.apache.avro.generic.GenericDatumWriter.setSchema:(Lorg/apache/avro/Schema;)V
         2: .line 59
            return
        end local 2 // org.apache.avro.generic.GenericData data
        end local 1 // org.apache.avro.Schema root
        end local 0 // org.apache.avro.generic.GenericDatumWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/avro/generic/GenericDatumWriter<TD;>;
            0    3     1  root  Lorg/apache/avro/Schema;
            0    3     2  data  Lorg/apache/avro/generic/GenericData;
    MethodParameters:
      Name  Flags
      root  
      data  

  public org.apache.avro.generic.GenericData getData();
    descriptor: ()Lorg/apache/avro/generic/GenericData;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.avro.generic.GenericDatumWriter this
         0: .line 63
            aload 0 /* this */
            getfield org.apache.avro.generic.GenericDatumWriter.data:Lorg/apache/avro/generic/GenericData;
            areturn
        end local 0 // org.apache.avro.generic.GenericDatumWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/avro/generic/GenericDatumWriter<TD;>;

  public void setSchema(org.apache.avro.Schema);
    descriptor: (Lorg/apache/avro/Schema;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.avro.generic.GenericDatumWriter this
        start local 1 // org.apache.avro.Schema root
         0: .line 67
            aload 0 /* this */
            aload 1 /* root */
            putfield org.apache.avro.generic.GenericDatumWriter.root:Lorg/apache/avro/Schema;
         1: .line 68
            return
        end local 1 // org.apache.avro.Schema root
        end local 0 // org.apache.avro.generic.GenericDatumWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/avro/generic/GenericDatumWriter<TD;>;
            0    2     1  root  Lorg/apache/avro/Schema;
    MethodParameters:
      Name  Flags
      root  

  public void write(D, org.apache.avro.io.Encoder);
    descriptor: (Ljava/lang/Object;Lorg/apache/avro/io/Encoder;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.apache.avro.generic.GenericDatumWriter this
        start local 1 // java.lang.Object datum
        start local 2 // org.apache.avro.io.Encoder out
         0: .line 71
            aload 2 /* out */
            ldc "Encoder cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         1: .line 72
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.avro.generic.GenericDatumWriter.root:Lorg/apache/avro/Schema;
            aload 1 /* datum */
            aload 2 /* out */
            invokevirtual org.apache.avro.generic.GenericDatumWriter.write:(Lorg/apache/avro/Schema;Ljava/lang/Object;Lorg/apache/avro/io/Encoder;)V
         2: .line 73
            return
        end local 2 // org.apache.avro.io.Encoder out
        end local 1 // java.lang.Object datum
        end local 0 // org.apache.avro.generic.GenericDatumWriter this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lorg/apache/avro/generic/GenericDatumWriter<TD;>;
            0    3     1  datum  TD;
            0    3     2    out  Lorg/apache/avro/io/Encoder;
    Exceptions:
      throws java.io.IOException
    Signature: (TD;Lorg/apache/avro/io/Encoder;)V
    MethodParameters:
       Name  Flags
      datum  
      out    

  protected void write(org.apache.avro.Schema, java.lang.Object, org.apache.avro.io.Encoder);
    descriptor: (Lorg/apache/avro/Schema;Ljava/lang/Object;Lorg/apache/avro/io/Encoder;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=6, args_size=4
        start local 0 // org.apache.avro.generic.GenericDatumWriter this
        start local 1 // org.apache.avro.Schema schema
        start local 2 // java.lang.Object datum
        start local 3 // org.apache.avro.io.Encoder out
         0: .line 77
            aload 1 /* schema */
            invokevirtual org.apache.avro.Schema.getLogicalType:()Lorg/apache/avro/LogicalType;
            astore 4 /* logicalType */
        start local 4 // org.apache.avro.LogicalType logicalType
         1: .line 78
            aload 2 /* datum */
            ifnull 5
            aload 4 /* logicalType */
            ifnull 5
         2: .line 79
            aload 0 /* this */
            invokevirtual org.apache.avro.generic.GenericDatumWriter.getData:()Lorg/apache/avro/generic/GenericData;
            aload 2 /* datum */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aload 4 /* logicalType */
            invokevirtual org.apache.avro.generic.GenericData.getConversionByClass:(Ljava/lang/Class;Lorg/apache/avro/LogicalType;)Lorg/apache/avro/Conversion;
            astore 5 /* conversion */
        start local 5 // org.apache.avro.Conversion conversion
         3: .line 80
            aload 0 /* this */
            aload 1 /* schema */
            aload 0 /* this */
            aload 1 /* schema */
            aload 4 /* logicalType */
            aload 5 /* conversion */
            aload 2 /* datum */
            invokevirtual org.apache.avro.generic.GenericDatumWriter.convert:(Lorg/apache/avro/Schema;Lorg/apache/avro/LogicalType;Lorg/apache/avro/Conversion;Ljava/lang/Object;)Ljava/lang/Object;
            aload 3 /* out */
            invokevirtual org.apache.avro.generic.GenericDatumWriter.writeWithoutConversion:(Lorg/apache/avro/Schema;Ljava/lang/Object;Lorg/apache/avro/io/Encoder;)V
        end local 5 // org.apache.avro.Conversion conversion
         4: .line 81
            goto 6
         5: .line 82
      StackMap locals: org.apache.avro.LogicalType
      StackMap stack:
            aload 0 /* this */
            aload 1 /* schema */
            aload 2 /* datum */
            aload 3 /* out */
            invokevirtual org.apache.avro.generic.GenericDatumWriter.writeWithoutConversion:(Lorg/apache/avro/Schema;Ljava/lang/Object;Lorg/apache/avro/io/Encoder;)V
         6: .line 84
      StackMap locals:
      StackMap stack:
            return
        end local 4 // org.apache.avro.LogicalType logicalType
        end local 3 // org.apache.avro.io.Encoder out
        end local 2 // java.lang.Object datum
        end local 1 // org.apache.avro.Schema schema
        end local 0 // org.apache.avro.generic.GenericDatumWriter this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    7     0         this  Lorg/apache/avro/generic/GenericDatumWriter<TD;>;
            0    7     1       schema  Lorg/apache/avro/Schema;
            0    7     2        datum  Ljava/lang/Object;
            0    7     3          out  Lorg/apache/avro/io/Encoder;
            1    7     4  logicalType  Lorg/apache/avro/LogicalType;
            3    4     5   conversion  Lorg/apache/avro/Conversion<*>;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      schema  
      datum   
      out     

  protected <T>  convert(org.apache.avro.Schema, org.apache.avro.LogicalType, org.apache.avro.Conversion<T>, );
    descriptor: (Lorg/apache/avro/Schema;Lorg/apache/avro/LogicalType;Lorg/apache/avro/Conversion;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=7, args_size=5
        start local 0 // org.apache.avro.generic.GenericDatumWriter this
        start local 1 // org.apache.avro.Schema schema
        start local 2 // org.apache.avro.LogicalType logicalType
        start local 3 // org.apache.avro.Conversion conversion
        start local 4 // java.lang.Object datum
         0: .line 103
            aload 3 /* conversion */
            ifnonnull 3
         1: .line 104
            aload 4 /* datum */
         2: areturn
         3: .line 106
      StackMap locals:
      StackMap stack:
            aload 4 /* datum */
            aload 1 /* schema */
            aload 2 /* logicalType */
            aload 3 /* conversion */
            invokestatic org.apache.avro.Conversions.convertToRawType:(Ljava/lang/Object;Lorg/apache/avro/Schema;Lorg/apache/avro/LogicalType;Lorg/apache/avro/Conversion;)Ljava/lang/Object;
         4: areturn
         5: .line 108
      StackMap locals:
      StackMap stack: org.apache.avro.AvroRuntimeException
            astore 5 /* e */
        start local 5 // org.apache.avro.AvroRuntimeException e
         6: .line 109
            aload 5 /* e */
            invokevirtual org.apache.avro.AvroRuntimeException.getCause:()Ljava/lang/Throwable;
            astore 6 /* cause */
        start local 6 // java.lang.Throwable cause
         7: .line 110
            aload 6 /* cause */
            ifnull 9
            aload 6 /* cause */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            ldc Ljava/lang/ClassCastException;
            if_acmpne 9
         8: .line 118
            aload 6 /* cause */
            checkcast java.lang.ClassCastException
            athrow
         9: .line 120
      StackMap locals: org.apache.avro.AvroRuntimeException java.lang.Throwable
      StackMap stack:
            aload 5 /* e */
            athrow
        end local 6 // java.lang.Throwable cause
        end local 5 // org.apache.avro.AvroRuntimeException e
        end local 4 // java.lang.Object datum
        end local 3 // org.apache.avro.Conversion conversion
        end local 2 // org.apache.avro.LogicalType logicalType
        end local 1 // org.apache.avro.Schema schema
        end local 0 // org.apache.avro.generic.GenericDatumWriter this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   10     0         this  Lorg/apache/avro/generic/GenericDatumWriter<TD;>;
            0   10     1       schema  Lorg/apache/avro/Schema;
            0   10     2  logicalType  Lorg/apache/avro/LogicalType;
            0   10     3   conversion  Lorg/apache/avro/Conversion<TT;>;
            0   10     4        datum  Ljava/lang/Object;
            6   10     5            e  Lorg/apache/avro/AvroRuntimeException;
            7   10     6        cause  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     2       5  Class org.apache.avro.AvroRuntimeException
           3     4       5  Class org.apache.avro.AvroRuntimeException
    Signature: <T:Ljava/lang/Object;>(Lorg/apache/avro/Schema;Lorg/apache/avro/LogicalType;Lorg/apache/avro/Conversion<TT;>;Ljava/lang/Object;)Ljava/lang/Object;
    MethodParameters:
             Name  Flags
      schema       
      logicalType  
      conversion   
      datum        

  protected void writeWithoutConversion(org.apache.avro.Schema, java.lang.Object, org.apache.avro.io.Encoder);
    descriptor: (Lorg/apache/avro/Schema;Ljava/lang/Object;Lorg/apache/avro/io/Encoder;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // org.apache.avro.generic.GenericDatumWriter this
        start local 1 // org.apache.avro.Schema schema
        start local 2 // java.lang.Object datum
        start local 3 // org.apache.avro.io.Encoder out
         0: .line 128
            invokestatic org.apache.avro.generic.GenericDatumWriter.$SWITCH_TABLE$org$apache$avro$Schema$Type:()[I
            aload 1 /* schema */
            invokevirtual org.apache.avro.Schema.getType:()Lorg/apache/avro/Schema$Type;
            invokevirtual org.apache.avro.Schema$Type.ordinal:()I
            iaload
            tableswitch { // 1 - 14
                    1: 1
                    2: 3
                    3: 5
                    4: 7
                    5: 9
                    6: 13
                    7: 15
                    8: 17
                    9: 19
                   10: 21
                   11: 23
                   12: 25
                   13: 27
                   14: 29
              default: 31
          }
         1: .line 130
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* schema */
            aload 2 /* datum */
            aload 3 /* out */
            invokevirtual org.apache.avro.generic.GenericDatumWriter.writeRecord:(Lorg/apache/avro/Schema;Ljava/lang/Object;Lorg/apache/avro/io/Encoder;)V
         2: .line 131
            goto 35
         3: .line 133
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* schema */
            aload 2 /* datum */
            aload 3 /* out */
            invokevirtual org.apache.avro.generic.GenericDatumWriter.writeEnum:(Lorg/apache/avro/Schema;Ljava/lang/Object;Lorg/apache/avro/io/Encoder;)V
         4: .line 134
            goto 35
         5: .line 136
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* schema */
            aload 2 /* datum */
            aload 3 /* out */
            invokevirtual org.apache.avro.generic.GenericDatumWriter.writeArray:(Lorg/apache/avro/Schema;Ljava/lang/Object;Lorg/apache/avro/io/Encoder;)V
         6: .line 137
            goto 35
         7: .line 139
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* schema */
            aload 2 /* datum */
            aload 3 /* out */
            invokevirtual org.apache.avro.generic.GenericDatumWriter.writeMap:(Lorg/apache/avro/Schema;Ljava/lang/Object;Lorg/apache/avro/io/Encoder;)V
         8: .line 140
            goto 35
         9: .line 142
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* schema */
            aload 2 /* datum */
            invokevirtual org.apache.avro.generic.GenericDatumWriter.resolveUnion:(Lorg/apache/avro/Schema;Ljava/lang/Object;)I
            istore 4 /* index */
        start local 4 // int index
        10: .line 143
            aload 3 /* out */
            iload 4 /* index */
            invokevirtual org.apache.avro.io.Encoder.writeIndex:(I)V
        11: .line 144
            aload 0 /* this */
            aload 1 /* schema */
            invokevirtual org.apache.avro.Schema.getTypes:()Ljava/util/List;
            iload 4 /* index */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.apache.avro.Schema
            aload 2 /* datum */
            aload 3 /* out */
            invokevirtual org.apache.avro.generic.GenericDatumWriter.write:(Lorg/apache/avro/Schema;Ljava/lang/Object;Lorg/apache/avro/io/Encoder;)V
        12: .line 145
            goto 35
        end local 4 // int index
        13: .line 147
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* schema */
            aload 2 /* datum */
            aload 3 /* out */
            invokevirtual org.apache.avro.generic.GenericDatumWriter.writeFixed:(Lorg/apache/avro/Schema;Ljava/lang/Object;Lorg/apache/avro/io/Encoder;)V
        14: .line 148
            goto 35
        15: .line 150
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* schema */
            aload 2 /* datum */
            aload 3 /* out */
            invokevirtual org.apache.avro.generic.GenericDatumWriter.writeString:(Lorg/apache/avro/Schema;Ljava/lang/Object;Lorg/apache/avro/io/Encoder;)V
        16: .line 151
            goto 35
        17: .line 153
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* datum */
            aload 3 /* out */
            invokevirtual org.apache.avro.generic.GenericDatumWriter.writeBytes:(Ljava/lang/Object;Lorg/apache/avro/io/Encoder;)V
        18: .line 154
            goto 35
        19: .line 156
      StackMap locals:
      StackMap stack:
            aload 3 /* out */
            aload 2 /* datum */
            checkcast java.lang.Number
            invokevirtual java.lang.Number.intValue:()I
            invokevirtual org.apache.avro.io.Encoder.writeInt:(I)V
        20: .line 157
            goto 35
        21: .line 159
      StackMap locals:
      StackMap stack:
            aload 3 /* out */
            aload 2 /* datum */
            checkcast java.lang.Long
            invokevirtual java.lang.Long.longValue:()J
            invokevirtual org.apache.avro.io.Encoder.writeLong:(J)V
        22: .line 160
            goto 35
        23: .line 162
      StackMap locals:
      StackMap stack:
            aload 3 /* out */
            aload 2 /* datum */
            checkcast java.lang.Float
            invokevirtual java.lang.Float.floatValue:()F
            invokevirtual org.apache.avro.io.Encoder.writeFloat:(F)V
        24: .line 163
            goto 35
        25: .line 165
      StackMap locals:
      StackMap stack:
            aload 3 /* out */
            aload 2 /* datum */
            checkcast java.lang.Double
            invokevirtual java.lang.Double.doubleValue:()D
            invokevirtual org.apache.avro.io.Encoder.writeDouble:(D)V
        26: .line 166
            goto 35
        27: .line 168
      StackMap locals:
      StackMap stack:
            aload 3 /* out */
            aload 2 /* datum */
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            invokevirtual org.apache.avro.io.Encoder.writeBoolean:(Z)V
        28: .line 169
            goto 35
        29: .line 171
      StackMap locals:
      StackMap stack:
            aload 3 /* out */
            invokevirtual org.apache.avro.io.Encoder.writeNull:()V
        30: .line 172
            goto 35
        31: .line 174
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* schema */
            aload 2 /* datum */
            invokevirtual org.apache.avro.generic.GenericDatumWriter.error:(Lorg/apache/avro/Schema;Ljava/lang/Object;)V
        32: .line 176
            goto 35
      StackMap locals:
      StackMap stack: java.lang.NullPointerException
        33: astore 4 /* e */
        start local 4 // java.lang.NullPointerException e
        34: .line 177
            aload 0 /* this */
            aload 4 /* e */
            new java.lang.StringBuilder
            dup
            ldc " of "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* schema */
            invokevirtual org.apache.avro.Schema.getFullName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.apache.avro.generic.GenericDatumWriter.npe:(Ljava/lang/NullPointerException;Ljava/lang/String;)Ljava/lang/NullPointerException;
            athrow
        end local 4 // java.lang.NullPointerException e
        35: .line 179
      StackMap locals:
      StackMap stack:
            return
        end local 3 // org.apache.avro.io.Encoder out
        end local 2 // java.lang.Object datum
        end local 1 // org.apache.avro.Schema schema
        end local 0 // org.apache.avro.generic.GenericDatumWriter this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   36     0    this  Lorg/apache/avro/generic/GenericDatumWriter<TD;>;
            0   36     1  schema  Lorg/apache/avro/Schema;
            0   36     2   datum  Ljava/lang/Object;
            0   36     3     out  Lorg/apache/avro/io/Encoder;
           10   13     4   index  I
           34   35     4       e  Ljava/lang/NullPointerException;
      Exception table:
        from    to  target  type
           0    32      33  Class java.lang.NullPointerException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      schema  
      datum   
      out     

  protected java.lang.NullPointerException npe(java.lang.NullPointerException, java.lang.String);
    descriptor: (Ljava/lang/NullPointerException;Ljava/lang/String;)Ljava/lang/NullPointerException;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // org.apache.avro.generic.GenericDatumWriter this
        start local 1 // java.lang.NullPointerException e
        start local 2 // java.lang.String s
         0: .line 183
            new java.lang.NullPointerException
            dup
            new java.lang.StringBuilder
            dup
            aload 1 /* e */
            invokevirtual java.lang.NullPointerException.getMessage:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* s */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            astore 3 /* result */
        start local 3 // java.lang.NullPointerException result
         1: .line 184
            aload 3 /* result */
            aload 1 /* e */
            invokevirtual java.lang.NullPointerException.getCause:()Ljava/lang/Throwable;
            ifnonnull 2
            aload 1 /* e */
            goto 3
      StackMap locals: org.apache.avro.generic.GenericDatumWriter java.lang.NullPointerException java.lang.String java.lang.NullPointerException
      StackMap stack: java.lang.NullPointerException
         2: aload 1 /* e */
            invokevirtual java.lang.NullPointerException.getCause:()Ljava/lang/Throwable;
      StackMap locals: org.apache.avro.generic.GenericDatumWriter java.lang.NullPointerException java.lang.String java.lang.NullPointerException
      StackMap stack: java.lang.NullPointerException java.lang.Throwable
         3: invokevirtual java.lang.NullPointerException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            pop
         4: .line 185
            aload 3 /* result */
            areturn
        end local 3 // java.lang.NullPointerException result
        end local 2 // java.lang.String s
        end local 1 // java.lang.NullPointerException e
        end local 0 // org.apache.avro.generic.GenericDatumWriter this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lorg/apache/avro/generic/GenericDatumWriter<TD;>;
            0    5     1       e  Ljava/lang/NullPointerException;
            0    5     2       s  Ljava/lang/String;
            1    5     3  result  Ljava/lang/NullPointerException;
    MethodParameters:
      Name  Flags
      e     
      s     

  protected void writeRecord(org.apache.avro.Schema, java.lang.Object, org.apache.avro.io.Encoder);
    descriptor: (Lorg/apache/avro/Schema;Ljava/lang/Object;Lorg/apache/avro/io/Encoder;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=7, args_size=4
        start local 0 // org.apache.avro.generic.GenericDatumWriter this
        start local 1 // org.apache.avro.Schema schema
        start local 2 // java.lang.Object datum
        start local 3 // org.apache.avro.io.Encoder out
         0: .line 193
            aload 0 /* this */
            getfield org.apache.avro.generic.GenericDatumWriter.data:Lorg/apache/avro/generic/GenericData;
            aload 2 /* datum */
            aload 1 /* schema */
            invokevirtual org.apache.avro.generic.GenericData.getRecordState:(Ljava/lang/Object;Lorg/apache/avro/Schema;)Ljava/lang/Object;
            astore 4 /* state */
        start local 4 // java.lang.Object state
         1: .line 194
            aload 1 /* schema */
            invokevirtual org.apache.avro.Schema.getFields:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 4
      StackMap locals: org.apache.avro.generic.GenericDatumWriter org.apache.avro.Schema java.lang.Object org.apache.avro.io.Encoder java.lang.Object top java.util.Iterator
      StackMap stack:
         2: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.avro.Schema$Field
            astore 5 /* f */
        start local 5 // org.apache.avro.Schema$Field f
         3: .line 195
            aload 0 /* this */
            aload 2 /* datum */
            aload 5 /* f */
            aload 3 /* out */
            aload 4 /* state */
            invokevirtual org.apache.avro.generic.GenericDatumWriter.writeField:(Ljava/lang/Object;Lorg/apache/avro/Schema$Field;Lorg/apache/avro/io/Encoder;Ljava/lang/Object;)V
        end local 5 // org.apache.avro.Schema$Field f
         4: .line 194
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 197
            return
        end local 4 // java.lang.Object state
        end local 3 // org.apache.avro.io.Encoder out
        end local 2 // java.lang.Object datum
        end local 1 // org.apache.avro.Schema schema
        end local 0 // org.apache.avro.generic.GenericDatumWriter this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lorg/apache/avro/generic/GenericDatumWriter<TD;>;
            0    6     1  schema  Lorg/apache/avro/Schema;
            0    6     2   datum  Ljava/lang/Object;
            0    6     3     out  Lorg/apache/avro/io/Encoder;
            1    6     4   state  Ljava/lang/Object;
            3    4     5       f  Lorg/apache/avro/Schema$Field;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      schema  
      datum   
      out     

  protected void writeField(java.lang.Object, org.apache.avro.Schema$Field, org.apache.avro.io.Encoder, java.lang.Object);
    descriptor: (Ljava/lang/Object;Lorg/apache/avro/Schema$Field;Lorg/apache/avro/io/Encoder;Ljava/lang/Object;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=7, args_size=5
        start local 0 // org.apache.avro.generic.GenericDatumWriter this
        start local 1 // java.lang.Object datum
        start local 2 // org.apache.avro.Schema$Field f
        start local 3 // org.apache.avro.io.Encoder out
        start local 4 // java.lang.Object state
         0: .line 204
            aload 0 /* this */
            getfield org.apache.avro.generic.GenericDatumWriter.data:Lorg/apache/avro/generic/GenericData;
            aload 1 /* datum */
            aload 2 /* f */
            invokevirtual org.apache.avro.Schema$Field.name:()Ljava/lang/String;
            aload 2 /* f */
            invokevirtual org.apache.avro.Schema$Field.pos:()I
            aload 4 /* state */
            invokevirtual org.apache.avro.generic.GenericData.getField:(Ljava/lang/Object;Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/Object;
            astore 5 /* value */
        start local 5 // java.lang.Object value
         1: .line 206
            aload 0 /* this */
            aload 2 /* f */
            invokevirtual org.apache.avro.Schema$Field.schema:()Lorg/apache/avro/Schema;
            aload 5 /* value */
            aload 3 /* out */
            invokevirtual org.apache.avro.generic.GenericDatumWriter.write:(Lorg/apache/avro/Schema;Ljava/lang/Object;Lorg/apache/avro/io/Encoder;)V
         2: .line 207
            goto 5
      StackMap locals: org.apache.avro.generic.GenericDatumWriter java.lang.Object org.apache.avro.Schema$Field org.apache.avro.io.Encoder java.lang.Object java.lang.Object
      StackMap stack: java.lang.NullPointerException
         3: astore 6 /* e */
        start local 6 // java.lang.NullPointerException e
         4: .line 208
            aload 0 /* this */
            aload 6 /* e */
            new java.lang.StringBuilder
            dup
            ldc " in field "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* f */
            invokevirtual org.apache.avro.Schema$Field.name:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.apache.avro.generic.GenericDatumWriter.npe:(Ljava/lang/NullPointerException;Ljava/lang/String;)Ljava/lang/NullPointerException;
            athrow
        end local 6 // java.lang.NullPointerException e
         5: .line 210
      StackMap locals:
      StackMap stack:
            return
        end local 5 // java.lang.Object value
        end local 4 // java.lang.Object state
        end local 3 // org.apache.avro.io.Encoder out
        end local 2 // org.apache.avro.Schema$Field f
        end local 1 // java.lang.Object datum
        end local 0 // org.apache.avro.generic.GenericDatumWriter this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   this  Lorg/apache/avro/generic/GenericDatumWriter<TD;>;
            0    6     1  datum  Ljava/lang/Object;
            0    6     2      f  Lorg/apache/avro/Schema$Field;
            0    6     3    out  Lorg/apache/avro/io/Encoder;
            0    6     4  state  Ljava/lang/Object;
            1    6     5  value  Ljava/lang/Object;
            4    5     6      e  Ljava/lang/NullPointerException;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.NullPointerException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      datum  
      f      
      out    
      state  

  protected void writeEnum(org.apache.avro.Schema, java.lang.Object, org.apache.avro.io.Encoder);
    descriptor: (Lorg/apache/avro/Schema;Ljava/lang/Object;Lorg/apache/avro/io/Encoder;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.apache.avro.generic.GenericDatumWriter this
        start local 1 // org.apache.avro.Schema schema
        start local 2 // java.lang.Object datum
        start local 3 // org.apache.avro.io.Encoder out
         0: .line 217
            aload 0 /* this */
            getfield org.apache.avro.generic.GenericDatumWriter.data:Lorg/apache/avro/generic/GenericData;
            aload 2 /* datum */
            invokevirtual org.apache.avro.generic.GenericData.isEnum:(Ljava/lang/Object;)Z
            ifne 2
         1: .line 218
            new org.apache.avro.AvroTypeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Not an enum: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* datum */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " for schema: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* schema */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.apache.avro.AvroTypeException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 219
      StackMap locals:
      StackMap stack:
            aload 3 /* out */
            aload 1 /* schema */
            aload 2 /* datum */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            invokevirtual org.apache.avro.Schema.getEnumOrdinal:(Ljava/lang/String;)I
            invokevirtual org.apache.avro.io.Encoder.writeEnum:(I)V
         3: .line 220
            return
        end local 3 // org.apache.avro.io.Encoder out
        end local 2 // java.lang.Object datum
        end local 1 // org.apache.avro.Schema schema
        end local 0 // org.apache.avro.generic.GenericDatumWriter this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lorg/apache/avro/generic/GenericDatumWriter<TD;>;
            0    4     1  schema  Lorg/apache/avro/Schema;
            0    4     2   datum  Ljava/lang/Object;
            0    4     3     out  Lorg/apache/avro/io/Encoder;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      schema  
      datum   
      out     

  protected void writeArray(org.apache.avro.Schema, java.lang.Object, org.apache.avro.io.Encoder);
    descriptor: (Lorg/apache/avro/Schema;Ljava/lang/Object;Lorg/apache/avro/io/Encoder;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=10, args_size=4
        start local 0 // org.apache.avro.generic.GenericDatumWriter this
        start local 1 // org.apache.avro.Schema schema
        start local 2 // java.lang.Object datum
        start local 3 // org.apache.avro.io.Encoder out
         0: .line 227
            aload 1 /* schema */
            invokevirtual org.apache.avro.Schema.getElementType:()Lorg/apache/avro/Schema;
            astore 4 /* element */
        start local 4 // org.apache.avro.Schema element
         1: .line 228
            aload 0 /* this */
            aload 2 /* datum */
            invokevirtual org.apache.avro.generic.GenericDatumWriter.getArraySize:(Ljava/lang/Object;)J
            lstore 5 /* size */
        start local 5 // long size
         2: .line 229
            lconst_0
            lstore 7 /* actualSize */
        start local 7 // long actualSize
         3: .line 230
            aload 3 /* out */
            invokevirtual org.apache.avro.io.Encoder.writeArrayStart:()V
         4: .line 231
            aload 3 /* out */
            lload 5 /* size */
            invokevirtual org.apache.avro.io.Encoder.setItemCount:(J)V
         5: .line 232
            aload 0 /* this */
            aload 2 /* datum */
            invokevirtual org.apache.avro.generic.GenericDatumWriter.getArrayElements:(Ljava/lang/Object;)Ljava/util/Iterator;
            astore 9 /* it */
        start local 9 // java.util.Iterator it
         6: goto 10
         7: .line 233
      StackMap locals: org.apache.avro.generic.GenericDatumWriter org.apache.avro.Schema java.lang.Object org.apache.avro.io.Encoder org.apache.avro.Schema long long java.util.Iterator
      StackMap stack:
            aload 3 /* out */
            invokevirtual org.apache.avro.io.Encoder.startItem:()V
         8: .line 234
            aload 0 /* this */
            aload 4 /* element */
            aload 9 /* it */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            aload 3 /* out */
            invokevirtual org.apache.avro.generic.GenericDatumWriter.write:(Lorg/apache/avro/Schema;Ljava/lang/Object;Lorg/apache/avro/io/Encoder;)V
         9: .line 235
            lload 7 /* actualSize */
            lconst_1
            ladd
            lstore 7 /* actualSize */
        10: .line 232
      StackMap locals:
      StackMap stack:
            aload 9 /* it */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        end local 9 // java.util.Iterator it
        11: .line 237
            aload 3 /* out */
            invokevirtual org.apache.avro.io.Encoder.writeArrayEnd:()V
        12: .line 238
            lload 7 /* actualSize */
            lload 5 /* size */
            lcmp
            ifeq 16
        13: .line 239
            new java.util.ConcurrentModificationException
            dup
        14: .line 240
            new java.lang.StringBuilder
            dup
            ldc "Size of array written was "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 5 /* size */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc ", but number of elements written was "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            lload 7 /* actualSize */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc ". "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        15: .line 239
            invokespecial java.util.ConcurrentModificationException.<init>:(Ljava/lang/String;)V
            athrow
        16: .line 242
      StackMap locals:
      StackMap stack:
            return
        end local 7 // long actualSize
        end local 5 // long size
        end local 4 // org.apache.avro.Schema element
        end local 3 // org.apache.avro.io.Encoder out
        end local 2 // java.lang.Object datum
        end local 1 // org.apache.avro.Schema schema
        end local 0 // org.apache.avro.generic.GenericDatumWriter this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   17     0        this  Lorg/apache/avro/generic/GenericDatumWriter<TD;>;
            0   17     1      schema  Lorg/apache/avro/Schema;
            0   17     2       datum  Ljava/lang/Object;
            0   17     3         out  Lorg/apache/avro/io/Encoder;
            1   17     4     element  Lorg/apache/avro/Schema;
            2   17     5        size  J
            3   17     7  actualSize  J
            6   11     9          it  Ljava/util/Iterator<+Ljava/lang/Object;>;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      schema  
      datum   
      out     

  protected int resolveUnion(org.apache.avro.Schema, java.lang.Object);
    descriptor: (Lorg/apache/avro/Schema;Ljava/lang/Object;)I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.apache.avro.generic.GenericDatumWriter this
        start local 1 // org.apache.avro.Schema union
        start local 2 // java.lang.Object datum
         0: .line 249
            aload 0 /* this */
            getfield org.apache.avro.generic.GenericDatumWriter.data:Lorg/apache/avro/generic/GenericData;
            aload 1 /* union */
            aload 2 /* datum */
            invokevirtual org.apache.avro.generic.GenericData.resolveUnion:(Lorg/apache/avro/Schema;Ljava/lang/Object;)I
            ireturn
        end local 2 // java.lang.Object datum
        end local 1 // org.apache.avro.Schema union
        end local 0 // org.apache.avro.generic.GenericDatumWriter this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lorg/apache/avro/generic/GenericDatumWriter<TD;>;
            0    1     1  union  Lorg/apache/avro/Schema;
            0    1     2  datum  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      union  
      datum  

  protected long getArraySize(java.lang.Object);
    descriptor: (Ljava/lang/Object;)J
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.avro.generic.GenericDatumWriter this
        start local 1 // java.lang.Object array
         0: .line 258
            aload 1 /* array */
            checkcast java.util.Collection
            invokeinterface java.util.Collection.size:()I
            i2l
            lreturn
        end local 1 // java.lang.Object array
        end local 0 // org.apache.avro.generic.GenericDatumWriter this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lorg/apache/avro/generic/GenericDatumWriter<TD;>;
            0    1     1  array  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      array  

  protected java.util.Iterator<? extends java.lang.Object> getArrayElements();
    descriptor: (Ljava/lang/Object;)Ljava/util/Iterator;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.apache.avro.generic.GenericDatumWriter this
        start local 1 // java.lang.Object array
         0: .line 267
            aload 1 /* array */
            checkcast java.util.Collection
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            areturn
        end local 1 // java.lang.Object array
        end local 0 // org.apache.avro.generic.GenericDatumWriter this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lorg/apache/avro/generic/GenericDatumWriter<TD;>;
            0    1     1  array  Ljava/lang/Object;
    Signature: (Ljava/lang/Object;)Ljava/util/Iterator<+Ljava/lang/Object;>;
    MethodParameters:
       Name  Flags
      array  

  protected void writeMap(org.apache.avro.Schema, java.lang.Object, org.apache.avro.io.Encoder);
    descriptor: (Lorg/apache/avro/Schema;Ljava/lang/Object;Lorg/apache/avro/io/Encoder;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=9, args_size=4
        start local 0 // org.apache.avro.generic.GenericDatumWriter this
        start local 1 // org.apache.avro.Schema schema
        start local 2 // java.lang.Object datum
        start local 3 // org.apache.avro.io.Encoder out
         0: .line 274
            aload 1 /* schema */
            invokevirtual org.apache.avro.Schema.getValueType:()Lorg/apache/avro/Schema;
            astore 4 /* value */
        start local 4 // org.apache.avro.Schema value
         1: .line 275
            aload 0 /* this */
            aload 2 /* datum */
            invokevirtual org.apache.avro.generic.GenericDatumWriter.getMapSize:(Ljava/lang/Object;)I
            istore 5 /* size */
        start local 5 // int size
         2: .line 276
            iconst_0
            istore 6 /* actualSize */
        start local 6 // int actualSize
         3: .line 277
            aload 3 /* out */
            invokevirtual org.apache.avro.io.Encoder.writeMapStart:()V
         4: .line 278
            aload 3 /* out */
            iload 5 /* size */
            i2l
            invokevirtual org.apache.avro.io.Encoder.setItemCount:(J)V
         5: .line 279
            aload 0 /* this */
            aload 2 /* datum */
            invokevirtual org.apache.avro.generic.GenericDatumWriter.getMapEntries:(Ljava/lang/Object;)Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 8
            goto 11
      StackMap locals: org.apache.avro.generic.GenericDatumWriter org.apache.avro.Schema java.lang.Object org.apache.avro.io.Encoder org.apache.avro.Schema int int top java.util.Iterator
      StackMap stack:
         6: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 7 /* entry */
        start local 7 // java.util.Map$Entry entry
         7: .line 280
            aload 3 /* out */
            invokevirtual org.apache.avro.io.Encoder.startItem:()V
         8: .line 281
            aload 0 /* this */
            aload 7 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            aload 3 /* out */
            invokevirtual org.apache.avro.generic.GenericDatumWriter.writeString:(Ljava/lang/Object;Lorg/apache/avro/io/Encoder;)V
         9: .line 282
            aload 0 /* this */
            aload 4 /* value */
            aload 7 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            aload 3 /* out */
            invokevirtual org.apache.avro.generic.GenericDatumWriter.write:(Lorg/apache/avro/Schema;Ljava/lang/Object;Lorg/apache/avro/io/Encoder;)V
        10: .line 283
            iinc 6 /* actualSize */ 1
        end local 7 // java.util.Map$Entry entry
        11: .line 279
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        12: .line 285
            aload 3 /* out */
            invokevirtual org.apache.avro.io.Encoder.writeMapEnd:()V
        13: .line 286
            iload 6 /* actualSize */
            iload 5 /* size */
            if_icmpeq 17
        14: .line 287
            new java.util.ConcurrentModificationException
            dup
        15: .line 288
            new java.lang.StringBuilder
            dup
            ldc "Size of map written was "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 5 /* size */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ", but number of entries written was "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 6 /* actualSize */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ". "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        16: .line 287
            invokespecial java.util.ConcurrentModificationException.<init>:(Ljava/lang/String;)V
            athrow
        17: .line 290
      StackMap locals: org.apache.avro.generic.GenericDatumWriter org.apache.avro.Schema java.lang.Object org.apache.avro.io.Encoder org.apache.avro.Schema int int
      StackMap stack:
            return
        end local 6 // int actualSize
        end local 5 // int size
        end local 4 // org.apache.avro.Schema value
        end local 3 // org.apache.avro.io.Encoder out
        end local 2 // java.lang.Object datum
        end local 1 // org.apache.avro.Schema schema
        end local 0 // org.apache.avro.generic.GenericDatumWriter this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   18     0        this  Lorg/apache/avro/generic/GenericDatumWriter<TD;>;
            0   18     1      schema  Lorg/apache/avro/Schema;
            0   18     2       datum  Ljava/lang/Object;
            0   18     3         out  Lorg/apache/avro/io/Encoder;
            1   18     4       value  Lorg/apache/avro/Schema;
            2   18     5        size  I
            3   18     6  actualSize  I
            7   11     7       entry  Ljava/util/Map$Entry<Ljava/lang/Object;Ljava/lang/Object;>;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      schema  
      datum   
      out     

  protected int getMapSize(java.lang.Object);
    descriptor: (Ljava/lang/Object;)I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.apache.avro.generic.GenericDatumWriter this
        start local 1 // java.lang.Object map
         0: .line 298
            aload 1 /* map */
            checkcast java.util.Map
            invokeinterface java.util.Map.size:()I
            ireturn
        end local 1 // java.lang.Object map
        end local 0 // org.apache.avro.generic.GenericDatumWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/avro/generic/GenericDatumWriter<TD;>;
            0    1     1   map  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      map   

  protected java.lang.Iterable<java.util.Map$Entry<java.lang.Object, java.lang.Object>> getMapEntries();
    descriptor: (Ljava/lang/Object;)Ljava/lang/Iterable;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.apache.avro.generic.GenericDatumWriter this
        start local 1 // java.lang.Object map
         0: .line 307
            aload 1 /* map */
            checkcast java.util.Map
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            areturn
        end local 1 // java.lang.Object map
        end local 0 // org.apache.avro.generic.GenericDatumWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/avro/generic/GenericDatumWriter<TD;>;
            0    1     1   map  Ljava/lang/Object;
    Signature: (Ljava/lang/Object;)Ljava/lang/Iterable<Ljava/util/Map$Entry<Ljava/lang/Object;Ljava/lang/Object;>;>;
    MethodParameters:
      Name  Flags
      map   

  protected void writeString(org.apache.avro.Schema, java.lang.Object, org.apache.avro.io.Encoder);
    descriptor: (Lorg/apache/avro/Schema;Ljava/lang/Object;Lorg/apache/avro/io/Encoder;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // org.apache.avro.generic.GenericDatumWriter this
        start local 1 // org.apache.avro.Schema schema
        start local 2 // java.lang.Object datum
        start local 3 // org.apache.avro.io.Encoder out
         0: .line 315
            aload 0 /* this */
            aload 2 /* datum */
            aload 3 /* out */
            invokevirtual org.apache.avro.generic.GenericDatumWriter.writeString:(Ljava/lang/Object;Lorg/apache/avro/io/Encoder;)V
         1: .line 316
            return
        end local 3 // org.apache.avro.io.Encoder out
        end local 2 // java.lang.Object datum
        end local 1 // org.apache.avro.Schema schema
        end local 0 // org.apache.avro.generic.GenericDatumWriter this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/apache/avro/generic/GenericDatumWriter<TD;>;
            0    2     1  schema  Lorg/apache/avro/Schema;
            0    2     2   datum  Ljava/lang/Object;
            0    2     3     out  Lorg/apache/avro/io/Encoder;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      schema  
      datum   
      out     

  protected void writeString(java.lang.Object, org.apache.avro.io.Encoder);
    descriptor: (Ljava/lang/Object;Lorg/apache/avro/io/Encoder;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.apache.avro.generic.GenericDatumWriter this
        start local 1 // java.lang.Object datum
        start local 2 // org.apache.avro.io.Encoder out
         0: .line 323
            aload 2 /* out */
            aload 1 /* datum */
            checkcast java.lang.CharSequence
            invokevirtual org.apache.avro.io.Encoder.writeString:(Ljava/lang/CharSequence;)V
         1: .line 324
            return
        end local 2 // org.apache.avro.io.Encoder out
        end local 1 // java.lang.Object datum
        end local 0 // org.apache.avro.generic.GenericDatumWriter this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/apache/avro/generic/GenericDatumWriter<TD;>;
            0    2     1  datum  Ljava/lang/Object;
            0    2     2    out  Lorg/apache/avro/io/Encoder;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      datum  
      out    

  protected void writeBytes(java.lang.Object, org.apache.avro.io.Encoder);
    descriptor: (Ljava/lang/Object;Lorg/apache/avro/io/Encoder;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.apache.avro.generic.GenericDatumWriter this
        start local 1 // java.lang.Object datum
        start local 2 // org.apache.avro.io.Encoder out
         0: .line 331
            aload 2 /* out */
            aload 1 /* datum */
            checkcast java.nio.ByteBuffer
            invokevirtual org.apache.avro.io.Encoder.writeBytes:(Ljava/nio/ByteBuffer;)V
         1: .line 332
            return
        end local 2 // org.apache.avro.io.Encoder out
        end local 1 // java.lang.Object datum
        end local 0 // org.apache.avro.generic.GenericDatumWriter this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/apache/avro/generic/GenericDatumWriter<TD;>;
            0    2     1  datum  Ljava/lang/Object;
            0    2     2    out  Lorg/apache/avro/io/Encoder;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      datum  
      out    

  protected void writeFixed(org.apache.avro.Schema, java.lang.Object, org.apache.avro.io.Encoder);
    descriptor: (Lorg/apache/avro/Schema;Ljava/lang/Object;Lorg/apache/avro/io/Encoder;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.apache.avro.generic.GenericDatumWriter this
        start local 1 // org.apache.avro.Schema schema
        start local 2 // java.lang.Object datum
        start local 3 // org.apache.avro.io.Encoder out
         0: .line 339
            aload 3 /* out */
            aload 2 /* datum */
            checkcast org.apache.avro.generic.GenericFixed
            invokeinterface org.apache.avro.generic.GenericFixed.bytes:()[B
            iconst_0
            aload 1 /* schema */
            invokevirtual org.apache.avro.Schema.getFixedSize:()I
            invokevirtual org.apache.avro.io.Encoder.writeFixed:([BII)V
         1: .line 340
            return
        end local 3 // org.apache.avro.io.Encoder out
        end local 2 // java.lang.Object datum
        end local 1 // org.apache.avro.Schema schema
        end local 0 // org.apache.avro.generic.GenericDatumWriter this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/apache/avro/generic/GenericDatumWriter<TD;>;
            0    2     1  schema  Lorg/apache/avro/Schema;
            0    2     2   datum  Ljava/lang/Object;
            0    2     3     out  Lorg/apache/avro/io/Encoder;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      schema  
      datum   
      out     

  private void error(org.apache.avro.Schema, java.lang.Object);
    descriptor: (Lorg/apache/avro/Schema;Ljava/lang/Object;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.apache.avro.generic.GenericDatumWriter this
        start local 1 // org.apache.avro.Schema schema
        start local 2 // java.lang.Object datum
         0: .line 343
            new org.apache.avro.AvroTypeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Not a "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* schema */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ": "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* datum */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.apache.avro.AvroTypeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.lang.Object datum
        end local 1 // org.apache.avro.Schema schema
        end local 0 // org.apache.avro.generic.GenericDatumWriter this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/apache/avro/generic/GenericDatumWriter<TD;>;
            0    1     1  schema  Lorg/apache/avro/Schema;
            0    1     2   datum  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      schema  
      datum   

  static int[] $SWITCH_TABLE$org$apache$avro$Schema$Type();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 39
            getstatic org.apache.avro.generic.GenericDatumWriter.$SWITCH_TABLE$org$apache$avro$Schema$Type:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic org.apache.avro.Schema$Type.values:()[Lorg/apache/avro/Schema$Type;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic org.apache.avro.Schema$Type.ARRAY:Lorg/apache/avro/Schema$Type;
            invokevirtual org.apache.avro.Schema$Type.ordinal:()I
            iconst_3
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic org.apache.avro.Schema$Type.BOOLEAN:Lorg/apache/avro/Schema$Type;
            invokevirtual org.apache.avro.Schema$Type.ordinal:()I
            bipush 13
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic org.apache.avro.Schema$Type.BYTES:Lorg/apache/avro/Schema$Type;
            invokevirtual org.apache.avro.Schema$Type.ordinal:()I
            bipush 8
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic org.apache.avro.Schema$Type.DOUBLE:Lorg/apache/avro/Schema$Type;
            invokevirtual org.apache.avro.Schema$Type.ordinal:()I
            bipush 12
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic org.apache.avro.Schema$Type.ENUM:Lorg/apache/avro/Schema$Type;
            invokevirtual org.apache.avro.Schema$Type.ordinal:()I
            iconst_2
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            getstatic org.apache.avro.Schema$Type.FIXED:Lorg/apache/avro/Schema$Type;
            invokevirtual org.apache.avro.Schema$Type.ordinal:()I
            bipush 6
            iastore
        18: goto 20
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        19: pop
      StackMap locals:
      StackMap stack:
        20: aload 0
            getstatic org.apache.avro.Schema$Type.FLOAT:Lorg/apache/avro/Schema$Type;
            invokevirtual org.apache.avro.Schema$Type.ordinal:()I
            bipush 11
            iastore
        21: goto 23
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        22: pop
      StackMap locals:
      StackMap stack:
        23: aload 0
            getstatic org.apache.avro.Schema$Type.INT:Lorg/apache/avro/Schema$Type;
            invokevirtual org.apache.avro.Schema$Type.ordinal:()I
            bipush 9
            iastore
        24: goto 26
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        25: pop
      StackMap locals:
      StackMap stack:
        26: aload 0
            getstatic org.apache.avro.Schema$Type.LONG:Lorg/apache/avro/Schema$Type;
            invokevirtual org.apache.avro.Schema$Type.ordinal:()I
            bipush 10
            iastore
        27: goto 29
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        28: pop
      StackMap locals:
      StackMap stack:
        29: aload 0
            getstatic org.apache.avro.Schema$Type.MAP:Lorg/apache/avro/Schema$Type;
            invokevirtual org.apache.avro.Schema$Type.ordinal:()I
            iconst_4
            iastore
        30: goto 32
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        31: pop
      StackMap locals:
      StackMap stack:
        32: aload 0
            getstatic org.apache.avro.Schema$Type.NULL:Lorg/apache/avro/Schema$Type;
            invokevirtual org.apache.avro.Schema$Type.ordinal:()I
            bipush 14
            iastore
        33: goto 35
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        34: pop
      StackMap locals:
      StackMap stack:
        35: aload 0
            getstatic org.apache.avro.Schema$Type.RECORD:Lorg/apache/avro/Schema$Type;
            invokevirtual org.apache.avro.Schema$Type.ordinal:()I
            iconst_1
            iastore
        36: goto 38
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        37: pop
      StackMap locals:
      StackMap stack:
        38: aload 0
            getstatic org.apache.avro.Schema$Type.STRING:Lorg/apache/avro/Schema$Type;
            invokevirtual org.apache.avro.Schema$Type.ordinal:()I
            bipush 7
            iastore
        39: goto 41
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        40: pop
      StackMap locals:
      StackMap stack:
        41: aload 0
            getstatic org.apache.avro.Schema$Type.UNION:Lorg/apache/avro/Schema$Type;
            invokevirtual org.apache.avro.Schema$Type.ordinal:()I
            iconst_5
            iastore
        42: goto 44
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        43: pop
      StackMap locals:
      StackMap stack:
        44: aload 0
            dup
            putstatic org.apache.avro.generic.GenericDatumWriter.$SWITCH_TABLE$org$apache$avro$Schema$Type:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError
          14    15      16  Class java.lang.NoSuchFieldError
          17    18      19  Class java.lang.NoSuchFieldError
          20    21      22  Class java.lang.NoSuchFieldError
          23    24      25  Class java.lang.NoSuchFieldError
          26    27      28  Class java.lang.NoSuchFieldError
          29    30      31  Class java.lang.NoSuchFieldError
          32    33      34  Class java.lang.NoSuchFieldError
          35    36      37  Class java.lang.NoSuchFieldError
          38    39      40  Class java.lang.NoSuchFieldError
          41    42      43  Class java.lang.NoSuchFieldError
}
Signature: <D:Ljava/lang/Object;>Ljava/lang/Object;Lorg/apache/avro/io/DatumWriter<TD;>;
SourceFile: "GenericDatumWriter.java"
InnerClasses:
  public abstract Entry = java.util.Map$Entry of java.util.Map
  public Field = org.apache.avro.Schema$Field of org.apache.avro.Schema
  public final Type = org.apache.avro.Schema$Type of org.apache.avro.Schema