public class javax.sql.rowset.serial.SerialBlob implements java.sql.Blob, java.io.Serializable, java.lang.Cloneable
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: javax.sql.rowset.serial.SerialBlob
  super_class: java.lang.Object
{
  private byte[] buf;
    descriptor: [B
    flags: (0x0002) ACC_PRIVATE

  private java.sql.Blob blob;
    descriptor: Ljava/sql/Blob;
    flags: (0x0002) ACC_PRIVATE

  private long len;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private long origLen;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  static final long serialVersionUID;
    descriptor: J
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: -8144641928112860441

  public void <init>(byte[]);
    descriptor: ([B)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // javax.sql.rowset.serial.SerialBlob this
        start local 1 // byte[] b
         0: .line 107
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 110
            aload 0 /* this */
            aload 1 /* b */
            arraylength
            i2l
            putfield javax.sql.rowset.serial.SerialBlob.len:J
         2: .line 111
            aload 0 /* this */
            aload 0 /* this */
            getfield javax.sql.rowset.serial.SerialBlob.len:J
            l2i
            newarray 8
            putfield javax.sql.rowset.serial.SerialBlob.buf:[B
         3: .line 112
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         4: goto 7
         5: .line 113
      StackMap locals: javax.sql.rowset.serial.SerialBlob byte[] int
      StackMap stack:
            aload 0 /* this */
            getfield javax.sql.rowset.serial.SerialBlob.buf:[B
            iload 2 /* i */
            aload 1 /* b */
            iload 2 /* i */
            baload
            bastore
         6: .line 112
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 2 /* i */
            i2l
            aload 0 /* this */
            getfield javax.sql.rowset.serial.SerialBlob.len:J
            lcmp
            iflt 5
        end local 2 // int i
         8: .line 115
            aload 0 /* this */
            aload 0 /* this */
            getfield javax.sql.rowset.serial.SerialBlob.len:J
            putfield javax.sql.rowset.serial.SerialBlob.origLen:J
         9: .line 116
            return
        end local 1 // byte[] b
        end local 0 // javax.sql.rowset.serial.SerialBlob this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Ljavax/sql/rowset/serial/SerialBlob;
            0   10     1     b  [B
            4    8     2     i  I
    Exceptions:
      throws javax.sql.rowset.serial.SerialException, java.sql.SQLException
    MethodParameters:
      Name  Flags
      b     

  public void <init>(java.sql.Blob);
    descriptor: (Ljava/sql/Blob;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // javax.sql.rowset.serial.SerialBlob this
        start local 1 // java.sql.Blob blob
         0: .line 138
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 141
            aload 1 /* blob */
            ifnonnull 5
         2: .line 142
            new java.sql.SQLException
            dup
         3: .line 143
            ldc "Cannot instantiate a SerialBlob object with a null Blob object"
         4: .line 142
            invokespecial java.sql.SQLException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 146
      StackMap locals: javax.sql.rowset.serial.SerialBlob java.sql.Blob
      StackMap stack:
            aload 0 /* this */
            aload 1 /* blob */
            invokeinterface java.sql.Blob.length:()J
            putfield javax.sql.rowset.serial.SerialBlob.len:J
         6: .line 147
            aload 0 /* this */
            aload 1 /* blob */
            lconst_1
            aload 0 /* this */
            getfield javax.sql.rowset.serial.SerialBlob.len:J
            l2i
            invokeinterface java.sql.Blob.getBytes:(JI)[B
            putfield javax.sql.rowset.serial.SerialBlob.buf:[B
         7: .line 148
            aload 0 /* this */
            aload 1 /* blob */
            putfield javax.sql.rowset.serial.SerialBlob.blob:Ljava/sql/Blob;
         8: .line 149
            aload 0 /* this */
            aload 0 /* this */
            getfield javax.sql.rowset.serial.SerialBlob.len:J
            putfield javax.sql.rowset.serial.SerialBlob.origLen:J
         9: .line 150
            return
        end local 1 // java.sql.Blob blob
        end local 0 // javax.sql.rowset.serial.SerialBlob this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Ljavax/sql/rowset/serial/SerialBlob;
            0   10     1  blob  Ljava/sql/Blob;
    Exceptions:
      throws javax.sql.rowset.serial.SerialException, java.sql.SQLException
    MethodParameters:
      Name  Flags
      blob  

  public byte[] getBytes(long, int);
    descriptor: (JI)[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // javax.sql.rowset.serial.SerialBlob this
        start local 1 // long pos
        start local 3 // int length
         0: .line 174
            aload 0 /* this */
            invokevirtual javax.sql.rowset.serial.SerialBlob.isValid:()V
         1: .line 175
            iload 3 /* length */
            i2l
            aload 0 /* this */
            getfield javax.sql.rowset.serial.SerialBlob.len:J
            lcmp
            ifle 3
         2: .line 176
            aload 0 /* this */
            getfield javax.sql.rowset.serial.SerialBlob.len:J
            l2i
            istore 3 /* length */
         3: .line 179
      StackMap locals:
      StackMap stack:
            lload 1 /* pos */
            lconst_1
            lcmp
            iflt 4
            aload 0 /* this */
            getfield javax.sql.rowset.serial.SerialBlob.len:J
            lload 1 /* pos */
            lsub
            lconst_0
            lcmp
            ifge 5
         4: .line 180
      StackMap locals:
      StackMap stack:
            new javax.sql.rowset.serial.SerialException
            dup
            ldc "Invalid arguments: position cannot be less than 1 or greater than the length of the SerialBlob"
            invokespecial javax.sql.rowset.serial.SerialException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 184
      StackMap locals:
      StackMap stack:
            lload 1 /* pos */
            lconst_1
            lsub
            lstore 1 /* pos */
         6: .line 186
            iload 3 /* length */
            newarray 8
            astore 4 /* b */
        start local 4 // byte[] b
         7: .line 188
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         8: goto 12
         9: .line 189
      StackMap locals: byte[] int
      StackMap stack:
            aload 4 /* b */
            iload 5 /* i */
            aload 0 /* this */
            getfield javax.sql.rowset.serial.SerialBlob.buf:[B
            lload 1 /* pos */
            l2i
            baload
            bastore
        10: .line 190
            lload 1 /* pos */
            lconst_1
            ladd
            lstore 1 /* pos */
        11: .line 188
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        12: iload 5 /* i */
            iload 3 /* length */
            if_icmplt 9
        end local 5 // int i
        13: .line 192
            aload 4 /* b */
            areturn
        end local 4 // byte[] b
        end local 3 // int length
        end local 1 // long pos
        end local 0 // javax.sql.rowset.serial.SerialBlob this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   14     0    this  Ljavax/sql/rowset/serial/SerialBlob;
            0   14     1     pos  J
            0   14     3  length  I
            7   14     4       b  [B
            8   13     5       i  I
    Exceptions:
      throws javax.sql.rowset.serial.SerialException
    MethodParameters:
        Name  Flags
      pos     
      length  

  public long length();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // javax.sql.rowset.serial.SerialBlob this
         0: .line 205
            aload 0 /* this */
            invokevirtual javax.sql.rowset.serial.SerialBlob.isValid:()V
         1: .line 206
            aload 0 /* this */
            getfield javax.sql.rowset.serial.SerialBlob.len:J
            lreturn
        end local 0 // javax.sql.rowset.serial.SerialBlob this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljavax/sql/rowset/serial/SerialBlob;
    Exceptions:
      throws javax.sql.rowset.serial.SerialException

  public java.io.InputStream getBinaryStream();
    descriptor: ()Ljava/io/InputStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // javax.sql.rowset.serial.SerialBlob this
         0: .line 222
            aload 0 /* this */
            invokevirtual javax.sql.rowset.serial.SerialBlob.isValid:()V
         1: .line 223
            new java.io.ByteArrayInputStream
            dup
            aload 0 /* this */
            getfield javax.sql.rowset.serial.SerialBlob.buf:[B
            invokespecial java.io.ByteArrayInputStream.<init>:([B)V
            astore 1 /* stream */
        start local 1 // java.io.InputStream stream
         2: .line 224
            aload 1 /* stream */
            areturn
        end local 1 // java.io.InputStream stream
        end local 0 // javax.sql.rowset.serial.SerialBlob this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Ljavax/sql/rowset/serial/SerialBlob;
            2    3     1  stream  Ljava/io/InputStream;
    Exceptions:
      throws javax.sql.rowset.serial.SerialException

  public long position(byte[], long);
    descriptor: ([BJ)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=8, args_size=3
        start local 0 // javax.sql.rowset.serial.SerialBlob this
        start local 1 // byte[] pattern
        start local 2 // long start
         0: .line 251
            aload 0 /* this */
            invokevirtual javax.sql.rowset.serial.SerialBlob.isValid:()V
         1: .line 252
            lload 2 /* start */
            lconst_1
            lcmp
            iflt 2
            lload 2 /* start */
            aload 0 /* this */
            getfield javax.sql.rowset.serial.SerialBlob.len:J
            lcmp
            ifle 3
         2: .line 253
      StackMap locals:
      StackMap stack:
            ldc -1
            lreturn
         3: .line 256
      StackMap locals:
      StackMap stack:
            lload 2 /* start */
            l2i
            iconst_1
            isub
            istore 4 /* pos */
        start local 4 // int pos
         4: .line 257
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         5: .line 258
            aload 1 /* pattern */
            arraylength
            i2l
            lstore 6 /* patlen */
        start local 6 // long patlen
         6: .line 260
            goto 14
         7: .line 261
      StackMap locals: int int long
      StackMap stack:
            aload 1 /* pattern */
            iload 5 /* i */
            baload
            aload 0 /* this */
            getfield javax.sql.rowset.serial.SerialBlob.buf:[B
            iload 4 /* pos */
            baload
            if_icmpne 12
         8: .line 262
            iload 5 /* i */
            iconst_1
            iadd
            i2l
            lload 6 /* patlen */
            lcmp
            ifne 10
         9: .line 263
            iload 4 /* pos */
            iconst_1
            iadd
            i2l
            lload 6 /* patlen */
            lconst_1
            lsub
            lsub
            lreturn
        10: .line 265
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
            iinc 4 /* pos */ 1
        11: .line 266
            goto 14
      StackMap locals:
      StackMap stack:
        12: aload 1 /* pattern */
            iload 5 /* i */
            baload
            aload 0 /* this */
            getfield javax.sql.rowset.serial.SerialBlob.buf:[B
            iload 4 /* pos */
            baload
            if_icmpeq 14
        13: .line 267
            iinc 4 /* pos */ 1
        14: .line 260
      StackMap locals:
      StackMap stack:
            iload 4 /* pos */
            i2l
            aload 0 /* this */
            getfield javax.sql.rowset.serial.SerialBlob.len:J
            lcmp
            iflt 7
        15: .line 270
            ldc -1
            lreturn
        end local 6 // long patlen
        end local 5 // int i
        end local 4 // int pos
        end local 2 // long start
        end local 1 // byte[] pattern
        end local 0 // javax.sql.rowset.serial.SerialBlob this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   16     0     this  Ljavax/sql/rowset/serial/SerialBlob;
            0   16     1  pattern  [B
            0   16     2    start  J
            4   16     4      pos  I
            5   16     5        i  I
            6   16     6   patlen  J
    Exceptions:
      throws javax.sql.rowset.serial.SerialException, java.sql.SQLException
    MethodParameters:
         Name  Flags
      pattern  
      start    

  public long position(java.sql.Blob, long);
    descriptor: (Ljava/sql/Blob;J)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // javax.sql.rowset.serial.SerialBlob this
        start local 1 // java.sql.Blob pattern
        start local 2 // long start
         0: .line 296
            aload 0 /* this */
            invokevirtual javax.sql.rowset.serial.SerialBlob.isValid:()V
         1: .line 297
            aload 0 /* this */
            aload 1 /* pattern */
            lconst_1
            aload 1 /* pattern */
            invokeinterface java.sql.Blob.length:()J
            l2i
            invokeinterface java.sql.Blob.getBytes:(JI)[B
            lload 2 /* start */
            invokevirtual javax.sql.rowset.serial.SerialBlob.position:([BJ)J
            lreturn
        end local 2 // long start
        end local 1 // java.sql.Blob pattern
        end local 0 // javax.sql.rowset.serial.SerialBlob this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Ljavax/sql/rowset/serial/SerialBlob;
            0    2     1  pattern  Ljava/sql/Blob;
            0    2     2    start  J
    Exceptions:
      throws javax.sql.rowset.serial.SerialException, java.sql.SQLException
    MethodParameters:
         Name  Flags
      pattern  
      start    

  public int setBytes(long, byte[]);
    descriptor: (J[B)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // javax.sql.rowset.serial.SerialBlob this
        start local 1 // long pos
        start local 3 // byte[] bytes
         0: .line 322
            aload 0 /* this */
            lload 1 /* pos */
            aload 3 /* bytes */
            iconst_0
            aload 3 /* bytes */
            arraylength
            invokevirtual javax.sql.rowset.serial.SerialBlob.setBytes:(J[BII)I
            ireturn
        end local 3 // byte[] bytes
        end local 1 // long pos
        end local 0 // javax.sql.rowset.serial.SerialBlob this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Ljavax/sql/rowset/serial/SerialBlob;
            0    1     1    pos  J
            0    1     3  bytes  [B
    Exceptions:
      throws javax.sql.rowset.serial.SerialException, java.sql.SQLException
    MethodParameters:
       Name  Flags
      pos    
      bytes  

  public int setBytes(long, byte[], int, int);
    descriptor: (J[BII)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=5
        start local 0 // javax.sql.rowset.serial.SerialBlob this
        start local 1 // long pos
        start local 3 // byte[] bytes
        start local 4 // int offset
        start local 5 // int length
         0: .line 359
            aload 0 /* this */
            invokevirtual javax.sql.rowset.serial.SerialBlob.isValid:()V
         1: .line 360
            iload 4 /* offset */
            iflt 2
            iload 4 /* offset */
            aload 3 /* bytes */
            arraylength
            if_icmple 3
         2: .line 361
      StackMap locals:
      StackMap stack:
            new javax.sql.rowset.serial.SerialException
            dup
            ldc "Invalid offset in byte array set"
            invokespecial javax.sql.rowset.serial.SerialException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 364
      StackMap locals:
      StackMap stack:
            lload 1 /* pos */
            lconst_1
            lcmp
            iflt 4
            lload 1 /* pos */
            aload 0 /* this */
            invokevirtual javax.sql.rowset.serial.SerialBlob.length:()J
            lcmp
            ifle 5
         4: .line 365
      StackMap locals:
      StackMap stack:
            new javax.sql.rowset.serial.SerialException
            dup
            ldc "Invalid position in BLOB object set"
            invokespecial javax.sql.rowset.serial.SerialException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 368
      StackMap locals:
      StackMap stack:
            iload 5 /* length */
            i2l
            aload 0 /* this */
            getfield javax.sql.rowset.serial.SerialBlob.origLen:J
            lcmp
            ifle 7
         6: .line 369
            new javax.sql.rowset.serial.SerialException
            dup
            ldc "Buffer is not sufficient to hold the value"
            invokespecial javax.sql.rowset.serial.SerialException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 372
      StackMap locals:
      StackMap stack:
            iload 5 /* length */
            iload 4 /* offset */
            iadd
            aload 3 /* bytes */
            arraylength
            if_icmple 9
         8: .line 373
            new javax.sql.rowset.serial.SerialException
            dup
            ldc "Invalid OffSet. Cannot have combined offset and length that is greater that the Blob buffer"
            invokespecial javax.sql.rowset.serial.SerialException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 377
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        10: .line 378
            lload 1 /* pos */
            lconst_1
            lsub
            lstore 1 /* pos */
        11: .line 379
            goto 14
        12: .line 380
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield javax.sql.rowset.serial.SerialBlob.buf:[B
            lload 1 /* pos */
            l2i
            iload 6 /* i */
            iadd
            aload 3 /* bytes */
            iload 4 /* offset */
            iload 6 /* i */
            iadd
            baload
            bastore
        13: .line 381
            iinc 6 /* i */ 1
        14: .line 379
      StackMap locals:
      StackMap stack:
            iload 6 /* i */
            iload 5 /* length */
            if_icmplt 12
            iload 4 /* offset */
            iload 6 /* i */
            iadd
            iconst_1
            iadd
            aload 3 /* bytes */
            arraylength
            iload 4 /* offset */
            isub
            if_icmplt 12
        15: .line 383
            iload 6 /* i */
            ireturn
        end local 6 // int i
        end local 5 // int length
        end local 4 // int offset
        end local 3 // byte[] bytes
        end local 1 // long pos
        end local 0 // javax.sql.rowset.serial.SerialBlob this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   16     0    this  Ljavax/sql/rowset/serial/SerialBlob;
            0   16     1     pos  J
            0   16     3   bytes  [B
            0   16     4  offset  I
            0   16     5  length  I
           10   16     6       i  I
    Exceptions:
      throws javax.sql.rowset.serial.SerialException, java.sql.SQLException
    MethodParameters:
        Name  Flags
      pos     
      bytes   
      offset  
      length  

  public java.io.OutputStream setBinaryStream(long);
    descriptor: (J)Ljava/io/OutputStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // javax.sql.rowset.serial.SerialBlob this
        start local 1 // long pos
         0: .line 409
            aload 0 /* this */
            invokevirtual javax.sql.rowset.serial.SerialBlob.isValid:()V
         1: .line 410
            aload 0 /* this */
            getfield javax.sql.rowset.serial.SerialBlob.blob:Ljava/sql/Blob;
            ifnull 3
         2: .line 411
            aload 0 /* this */
            getfield javax.sql.rowset.serial.SerialBlob.blob:Ljava/sql/Blob;
            lload 1 /* pos */
            invokeinterface java.sql.Blob.setBinaryStream:(J)Ljava/io/OutputStream;
            areturn
         3: .line 413
      StackMap locals:
      StackMap stack:
            new javax.sql.rowset.serial.SerialException
            dup
            ldc "Unsupported operation. SerialBlob cannot return a writable binary stream, unless instantiated with a Blob object that provides a setBinaryStream() implementation"
            invokespecial javax.sql.rowset.serial.SerialException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // long pos
        end local 0 // javax.sql.rowset.serial.SerialBlob this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljavax/sql/rowset/serial/SerialBlob;
            0    4     1   pos  J
    Exceptions:
      throws javax.sql.rowset.serial.SerialException, java.sql.SQLException
    MethodParameters:
      Name  Flags
      pos   

  public void truncate(long);
    descriptor: (J)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // javax.sql.rowset.serial.SerialBlob this
        start local 1 // long length
         0: .line 431
            aload 0 /* this */
            invokevirtual javax.sql.rowset.serial.SerialBlob.isValid:()V
         1: .line 432
            lload 1 /* length */
            aload 0 /* this */
            getfield javax.sql.rowset.serial.SerialBlob.len:J
            lcmp
            ifle 5
         2: .line 433
            new javax.sql.rowset.serial.SerialException
            dup
         3: .line 434
            ldc "Length more than what can be truncated"
         4: .line 433
            invokespecial javax.sql.rowset.serial.SerialException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 435
      StackMap locals:
      StackMap stack:
            lload 1 /* length */
            l2i
            ifne 9
         6: .line 436
            aload 0 /* this */
            iconst_0
            newarray 8
            putfield javax.sql.rowset.serial.SerialBlob.buf:[B
         7: .line 437
            aload 0 /* this */
            lload 1 /* length */
            putfield javax.sql.rowset.serial.SerialBlob.len:J
         8: .line 438
            goto 11
         9: .line 439
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            lload 1 /* length */
            putfield javax.sql.rowset.serial.SerialBlob.len:J
        10: .line 440
            aload 0 /* this */
            aload 0 /* this */
            lconst_1
            aload 0 /* this */
            getfield javax.sql.rowset.serial.SerialBlob.len:J
            l2i
            invokevirtual javax.sql.rowset.serial.SerialBlob.getBytes:(JI)[B
            putfield javax.sql.rowset.serial.SerialBlob.buf:[B
        11: .line 442
      StackMap locals:
      StackMap stack:
            return
        end local 1 // long length
        end local 0 // javax.sql.rowset.serial.SerialBlob this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   12     0    this  Ljavax/sql/rowset/serial/SerialBlob;
            0   12     1  length  J
    Exceptions:
      throws javax.sql.rowset.serial.SerialException
    MethodParameters:
        Name  Flags
      length  

  public java.io.InputStream getBinaryStream(long, long);
    descriptor: (JJ)Ljava/io/InputStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=3
        start local 0 // javax.sql.rowset.serial.SerialBlob this
        start local 1 // long pos
        start local 3 // long length
         0: .line 466
            aload 0 /* this */
            invokevirtual javax.sql.rowset.serial.SerialBlob.isValid:()V
         1: .line 467
            lload 1 /* pos */
            lconst_1
            lcmp
            iflt 2
            lload 1 /* pos */
            aload 0 /* this */
            invokevirtual javax.sql.rowset.serial.SerialBlob.length:()J
            lcmp
            ifle 3
         2: .line 468
      StackMap locals:
      StackMap stack:
            new javax.sql.rowset.serial.SerialException
            dup
            ldc "Invalid position in BLOB object set"
            invokespecial javax.sql.rowset.serial.SerialException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 470
      StackMap locals:
      StackMap stack:
            lload 3 /* length */
            lconst_1
            lcmp
            iflt 4
            lload 3 /* length */
            aload 0 /* this */
            getfield javax.sql.rowset.serial.SerialBlob.len:J
            lload 1 /* pos */
            lsub
            lconst_1
            ladd
            lcmp
            ifle 7
         4: .line 471
      StackMap locals:
      StackMap stack:
            new javax.sql.rowset.serial.SerialException
            dup
         5: .line 472
            ldc "length is < 1 or pos + length > total number of bytes"
         6: .line 471
            invokespecial javax.sql.rowset.serial.SerialException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 474
      StackMap locals:
      StackMap stack:
            new java.io.ByteArrayInputStream
            dup
            aload 0 /* this */
            getfield javax.sql.rowset.serial.SerialBlob.buf:[B
            lload 1 /* pos */
            l2i
            iconst_1
            isub
            lload 3 /* length */
            l2i
            invokespecial java.io.ByteArrayInputStream.<init>:([BII)V
            areturn
        end local 3 // long length
        end local 1 // long pos
        end local 0 // javax.sql.rowset.serial.SerialBlob this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Ljavax/sql/rowset/serial/SerialBlob;
            0    8     1     pos  J
            0    8     3  length  J
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
        Name  Flags
      pos     
      length  

  public void free();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // javax.sql.rowset.serial.SerialBlob this
         0: .line 488
            aload 0 /* this */
            getfield javax.sql.rowset.serial.SerialBlob.buf:[B
            ifnull 5
         1: .line 489
            aload 0 /* this */
            aconst_null
            putfield javax.sql.rowset.serial.SerialBlob.buf:[B
         2: .line 490
            aload 0 /* this */
            getfield javax.sql.rowset.serial.SerialBlob.blob:Ljava/sql/Blob;
            ifnull 4
         3: .line 491
            aload 0 /* this */
            getfield javax.sql.rowset.serial.SerialBlob.blob:Ljava/sql/Blob;
            invokeinterface java.sql.Blob.free:()V
         4: .line 493
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield javax.sql.rowset.serial.SerialBlob.blob:Ljava/sql/Blob;
         5: .line 495
      StackMap locals:
      StackMap stack:
            return
        end local 0 // javax.sql.rowset.serial.SerialBlob this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Ljavax/sql/rowset/serial/SerialBlob;
    Exceptions:
      throws java.sql.SQLException

  public boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // javax.sql.rowset.serial.SerialBlob this
        start local 1 // java.lang.Object obj
         0: .line 510
            aload 0 /* this */
            aload 1 /* obj */
            if_acmpne 2
         1: .line 511
            iconst_1
            ireturn
         2: .line 513
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            instanceof javax.sql.rowset.serial.SerialBlob
            ifeq 6
         3: .line 514
            aload 1 /* obj */
            checkcast javax.sql.rowset.serial.SerialBlob
            astore 2 /* sb */
        start local 2 // javax.sql.rowset.serial.SerialBlob sb
         4: .line 515
            aload 0 /* this */
            getfield javax.sql.rowset.serial.SerialBlob.len:J
            aload 2 /* sb */
            getfield javax.sql.rowset.serial.SerialBlob.len:J
            lcmp
            ifne 6
         5: .line 516
            aload 0 /* this */
            getfield javax.sql.rowset.serial.SerialBlob.buf:[B
            aload 2 /* sb */
            getfield javax.sql.rowset.serial.SerialBlob.buf:[B
            invokestatic java.util.Arrays.equals:([B[B)Z
            ireturn
        end local 2 // javax.sql.rowset.serial.SerialBlob sb
         6: .line 519
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // java.lang.Object obj
        end local 0 // javax.sql.rowset.serial.SerialBlob this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Ljavax/sql/rowset/serial/SerialBlob;
            0    7     1   obj  Ljava/lang/Object;
            4    6     2    sb  Ljavax/sql/rowset/serial/SerialBlob;
    MethodParameters:
      Name  Flags
      obj   

  public int hashCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // javax.sql.rowset.serial.SerialBlob this
         0: .line 527
            bipush 31
            aload 0 /* this */
            getfield javax.sql.rowset.serial.SerialBlob.buf:[B
            invokestatic java.util.Arrays.hashCode:([B)I
            iadd
            bipush 31
            imul
            aload 0 /* this */
            getfield javax.sql.rowset.serial.SerialBlob.len:J
            l2i
            iadd
            bipush 31
            imul
            aload 0 /* this */
            getfield javax.sql.rowset.serial.SerialBlob.origLen:J
            l2i
            iadd
            ireturn
        end local 0 // javax.sql.rowset.serial.SerialBlob this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/sql/rowset/serial/SerialBlob;

  public java.lang.Object clone();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // javax.sql.rowset.serial.SerialBlob this
         0: .line 540
            aload 0 /* this */
            invokespecial java.lang.Object.clone:()Ljava/lang/Object;
            checkcast javax.sql.rowset.serial.SerialBlob
            astore 1 /* sb */
        start local 1 // javax.sql.rowset.serial.SerialBlob sb
         1: .line 541
            aload 1 /* sb */
            aload 0 /* this */
            getfield javax.sql.rowset.serial.SerialBlob.buf:[B
            ifnull 2
            aload 0 /* this */
            getfield javax.sql.rowset.serial.SerialBlob.buf:[B
            aload 0 /* this */
            getfield javax.sql.rowset.serial.SerialBlob.len:J
            l2i
            invokestatic java.util.Arrays.copyOf:([BI)[B
            goto 3
      StackMap locals: javax.sql.rowset.serial.SerialBlob javax.sql.rowset.serial.SerialBlob
      StackMap stack: javax.sql.rowset.serial.SerialBlob
         2: aconst_null
      StackMap locals: javax.sql.rowset.serial.SerialBlob javax.sql.rowset.serial.SerialBlob
      StackMap stack: javax.sql.rowset.serial.SerialBlob byte[]
         3: putfield javax.sql.rowset.serial.SerialBlob.buf:[B
         4: .line 542
            aload 1 /* sb */
            aconst_null
            putfield javax.sql.rowset.serial.SerialBlob.blob:Ljava/sql/Blob;
         5: .line 543
            aload 1 /* sb */
         6: areturn
        end local 1 // javax.sql.rowset.serial.SerialBlob sb
         7: .line 544
      StackMap locals: javax.sql.rowset.serial.SerialBlob
      StackMap stack: java.lang.CloneNotSupportedException
            pop
         8: .line 546
            new java.lang.InternalError
            dup
            invokespecial java.lang.InternalError.<init>:()V
            athrow
        end local 0 // javax.sql.rowset.serial.SerialBlob this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Ljavax/sql/rowset/serial/SerialBlob;
            1    7     1    sb  Ljavax/sql/rowset/serial/SerialBlob;
      Exception table:
        from    to  target  type
           0     6       7  Class java.lang.CloneNotSupportedException

  private void readObject(java.io.ObjectInputStream);
    descriptor: (Ljava/io/ObjectInputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // javax.sql.rowset.serial.SerialBlob this
        start local 1 // java.io.ObjectInputStream s
         0: .line 562
            aload 1 /* s */
            invokevirtual java.io.ObjectInputStream.readFields:()Ljava/io/ObjectInputStream$GetField;
            astore 2 /* fields */
        start local 2 // java.io.ObjectInputStream$GetField fields
         1: .line 563
            aload 2 /* fields */
            ldc "buf"
            aconst_null
            invokevirtual java.io.ObjectInputStream$GetField.get:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast byte[]
            astore 3 /* tmp */
        start local 3 // byte[] tmp
         2: .line 564
            aload 3 /* tmp */
            ifnonnull 4
         3: .line 565
            new java.io.InvalidObjectException
            dup
            ldc "buf is null and should not be!"
            invokespecial java.io.InvalidObjectException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 566
      StackMap locals: java.io.ObjectInputStream$GetField byte[]
      StackMap stack:
            aload 0 /* this */
            aload 3 /* tmp */
            invokevirtual byte[].clone:()Ljava/lang/Object;
            checkcast byte[]
            putfield javax.sql.rowset.serial.SerialBlob.buf:[B
         5: .line 567
            aload 0 /* this */
            aload 2 /* fields */
            ldc "len"
            lconst_0
            invokevirtual java.io.ObjectInputStream$GetField.get:(Ljava/lang/String;J)J
            putfield javax.sql.rowset.serial.SerialBlob.len:J
         6: .line 568
            aload 0 /* this */
            getfield javax.sql.rowset.serial.SerialBlob.buf:[B
            arraylength
            i2l
            aload 0 /* this */
            getfield javax.sql.rowset.serial.SerialBlob.len:J
            lcmp
            ifeq 8
         7: .line 569
            new java.io.InvalidObjectException
            dup
            ldc "buf is not the expected size"
            invokespecial java.io.InvalidObjectException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 570
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* fields */
            ldc "origLen"
            lconst_0
            invokevirtual java.io.ObjectInputStream$GetField.get:(Ljava/lang/String;J)J
            putfield javax.sql.rowset.serial.SerialBlob.origLen:J
         9: .line 571
            aload 0 /* this */
            aload 2 /* fields */
            ldc "blob"
            aconst_null
            invokevirtual java.io.ObjectInputStream$GetField.get:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.sql.Blob
            putfield javax.sql.rowset.serial.SerialBlob.blob:Ljava/sql/Blob;
        10: .line 572
            return
        end local 3 // byte[] tmp
        end local 2 // java.io.ObjectInputStream$GetField fields
        end local 1 // java.io.ObjectInputStream s
        end local 0 // javax.sql.rowset.serial.SerialBlob this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   11     0    this  Ljavax/sql/rowset/serial/SerialBlob;
            0   11     1       s  Ljava/io/ObjectInputStream;
            1   11     2  fields  Ljava/io/ObjectInputStream$GetField;
            2   11     3     tmp  [B
    Exceptions:
      throws java.io.IOException, java.lang.ClassNotFoundException
    MethodParameters:
      Name  Flags
      s     

  private void writeObject(java.io.ObjectOutputStream);
    descriptor: (Ljava/io/ObjectOutputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // javax.sql.rowset.serial.SerialBlob this
        start local 1 // java.io.ObjectOutputStream s
         0: .line 583
            aload 1 /* s */
            invokevirtual java.io.ObjectOutputStream.putFields:()Ljava/io/ObjectOutputStream$PutField;
            astore 2 /* fields */
        start local 2 // java.io.ObjectOutputStream$PutField fields
         1: .line 584
            aload 2 /* fields */
            ldc "buf"
            aload 0 /* this */
            getfield javax.sql.rowset.serial.SerialBlob.buf:[B
            invokevirtual java.io.ObjectOutputStream$PutField.put:(Ljava/lang/String;Ljava/lang/Object;)V
         2: .line 585
            aload 2 /* fields */
            ldc "len"
            aload 0 /* this */
            getfield javax.sql.rowset.serial.SerialBlob.len:J
            invokevirtual java.io.ObjectOutputStream$PutField.put:(Ljava/lang/String;J)V
         3: .line 586
            aload 2 /* fields */
            ldc "origLen"
            aload 0 /* this */
            getfield javax.sql.rowset.serial.SerialBlob.origLen:J
            invokevirtual java.io.ObjectOutputStream$PutField.put:(Ljava/lang/String;J)V
         4: .line 589
            aload 2 /* fields */
            ldc "blob"
            aload 0 /* this */
            getfield javax.sql.rowset.serial.SerialBlob.blob:Ljava/sql/Blob;
            instanceof java.io.Serializable
            ifeq 5
            aload 0 /* this */
            getfield javax.sql.rowset.serial.SerialBlob.blob:Ljava/sql/Blob;
            goto 6
      StackMap locals: javax.sql.rowset.serial.SerialBlob java.io.ObjectOutputStream java.io.ObjectOutputStream$PutField
      StackMap stack: java.io.ObjectOutputStream$PutField java.lang.String
         5: aconst_null
      StackMap locals: javax.sql.rowset.serial.SerialBlob java.io.ObjectOutputStream java.io.ObjectOutputStream$PutField
      StackMap stack: java.io.ObjectOutputStream$PutField java.lang.String java.sql.Blob
         6: invokevirtual java.io.ObjectOutputStream$PutField.put:(Ljava/lang/String;Ljava/lang/Object;)V
         7: .line 590
            aload 1 /* s */
            invokevirtual java.io.ObjectOutputStream.writeFields:()V
         8: .line 591
            return
        end local 2 // java.io.ObjectOutputStream$PutField fields
        end local 1 // java.io.ObjectOutputStream s
        end local 0 // javax.sql.rowset.serial.SerialBlob this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0    this  Ljavax/sql/rowset/serial/SerialBlob;
            0    9     1       s  Ljava/io/ObjectOutputStream;
            1    9     2  fields  Ljava/io/ObjectOutputStream$PutField;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      s     

  private void isValid();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // javax.sql.rowset.serial.SerialBlob this
         0: .line 600
            aload 0 /* this */
            getfield javax.sql.rowset.serial.SerialBlob.buf:[B
            ifnonnull 2
         1: .line 601
            new javax.sql.rowset.serial.SerialException
            dup
            ldc "Error: You cannot call a method on a SerialBlob instance once free() has been called."
            invokespecial javax.sql.rowset.serial.SerialException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 604
      StackMap locals:
      StackMap stack:
            return
        end local 0 // javax.sql.rowset.serial.SerialBlob this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljavax/sql/rowset/serial/SerialBlob;
    Exceptions:
      throws javax.sql.rowset.serial.SerialException
}
SourceFile: "SerialBlob.java"
InnerClasses:
  public abstract GetField = java.io.ObjectInputStream$GetField of java.io.ObjectInputStream
  public abstract PutField = java.io.ObjectOutputStream$PutField of java.io.ObjectOutputStream