public class org.h2.jdbc.JdbcBlob extends org.h2.jdbc.JdbcLob implements java.sql.Blob
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.h2.jdbc.JdbcBlob
  super_class: org.h2.jdbc.JdbcLob
{
  public void <init>(org.h2.jdbc.JdbcConnection, org.h2.value.Value, org.h2.jdbc.JdbcLob$State, int);
    descriptor: (Lorg/h2/jdbc/JdbcConnection;Lorg/h2/value/Value;Lorg/h2/jdbc/JdbcLob$State;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // org.h2.jdbc.JdbcBlob this
        start local 1 // org.h2.jdbc.JdbcConnection conn
        start local 2 // org.h2.value.Value value
        start local 3 // org.h2.jdbc.JdbcLob$State state
        start local 4 // int id
         0: .line 34
            aload 0 /* this */
            aload 1 /* conn */
            aload 2 /* value */
            aload 3 /* state */
            bipush 9
            iload 4 /* id */
            invokespecial org.h2.jdbc.JdbcLob.<init>:(Lorg/h2/jdbc/JdbcConnection;Lorg/h2/value/Value;Lorg/h2/jdbc/JdbcLob$State;II)V
         1: .line 35
            return
        end local 4 // int id
        end local 3 // org.h2.jdbc.JdbcLob$State state
        end local 2 // org.h2.value.Value value
        end local 1 // org.h2.jdbc.JdbcConnection conn
        end local 0 // org.h2.jdbc.JdbcBlob this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/h2/jdbc/JdbcBlob;
            0    2     1   conn  Lorg/h2/jdbc/JdbcConnection;
            0    2     2  value  Lorg/h2/value/Value;
            0    2     3  state  Lorg/h2/jdbc/JdbcLob$State;
            0    2     4     id  I
    MethodParameters:
       Name  Flags
      conn   
      value  
      state  
      id     

  public long length();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // org.h2.jdbc.JdbcBlob this
         0: .line 45
            aload 0 /* this */
            ldc "length"
            invokevirtual org.h2.jdbc.JdbcBlob.debugCodeCall:(Ljava/lang/String;)V
         1: .line 46
            aload 0 /* this */
            invokevirtual org.h2.jdbc.JdbcBlob.checkReadable:()V
         2: .line 47
            aload 0 /* this */
            getfield org.h2.jdbc.JdbcBlob.value:Lorg/h2/value/Value;
            invokevirtual org.h2.value.Value.getValueType:()I
            bipush 15
            if_icmpne 7
         3: .line 48
            aload 0 /* this */
            getfield org.h2.jdbc.JdbcBlob.value:Lorg/h2/value/Value;
            invokevirtual org.h2.value.Value.getType:()Lorg/h2/value/TypeInfo;
            invokevirtual org.h2.value.TypeInfo.getPrecision:()J
            lstore 1 /* precision */
        start local 1 // long precision
         4: .line 49
            lload 1 /* precision */
            lconst_0
            lcmp
            ifle 7
         5: .line 50
            lload 1 /* precision */
         6: lreturn
        end local 1 // long precision
         7: .line 53
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.jdbc.JdbcBlob.value:Lorg/h2/value/Value;
            invokevirtual org.h2.value.Value.getInputStream:()Ljava/io/InputStream;
            aconst_null
            invokestatic org.h2.util.IOUtils.copyAndCloseInput:(Ljava/io/InputStream;Ljava/io/OutputStream;)J
         8: lreturn
         9: .line 54
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 1 /* e */
        start local 1 // java.lang.Exception e
        10: .line 55
            aload 0 /* this */
            aload 1 /* e */
            invokevirtual org.h2.jdbc.JdbcBlob.logAndConvert:(Ljava/lang/Throwable;)Ljava/sql/SQLException;
            athrow
        end local 1 // java.lang.Exception e
        end local 0 // org.h2.jdbc.JdbcBlob this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   11     0       this  Lorg/h2/jdbc/JdbcBlob;
            4    7     1  precision  J
           10   11     1          e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     6       9  Class java.lang.Exception
           7     8       9  Class java.lang.Exception
    Exceptions:
      throws java.sql.SQLException

  public void truncate(long);
    descriptor: (J)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.h2.jdbc.JdbcBlob this
        start local 1 // long len
         0: .line 66
            aload 0 /* this */
            ldc "LOB update"
            invokevirtual org.h2.jdbc.JdbcBlob.unsupported:(Ljava/lang/String;)Ljava/sql/SQLException;
            athrow
        end local 1 // long len
        end local 0 // org.h2.jdbc.JdbcBlob this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/jdbc/JdbcBlob;
            0    1     1   len  J
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
      Name  Flags
      len   

  public byte[] getBytes(long, int);
    descriptor: (JI)[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=8, args_size=3
        start local 0 // org.h2.jdbc.JdbcBlob this
        start local 1 // long pos
        start local 3 // int length
         0: .line 79
            aload 0 /* this */
            invokevirtual org.h2.jdbc.JdbcBlob.isDebugEnabled:()Z
            ifeq 2
         1: .line 80
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "getBytes("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 1 /* pos */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 3 /* length */
            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;
            invokevirtual org.h2.jdbc.JdbcBlob.debugCode:(Ljava/lang/String;)V
         2: .line 82
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.h2.jdbc.JdbcBlob.checkReadable:()V
         3: .line 83
            new java.io.ByteArrayOutputStream
            dup
            invokespecial java.io.ByteArrayOutputStream.<init>:()V
            astore 4 /* out */
        start local 4 // java.io.ByteArrayOutputStream out
         4: .line 84
            aconst_null
            astore 5
            aconst_null
            astore 6
         5: aload 0 /* this */
            getfield org.h2.jdbc.JdbcBlob.value:Lorg/h2/value/Value;
            invokevirtual org.h2.value.Value.getInputStream:()Ljava/io/InputStream;
            astore 7 /* in */
        start local 7 // java.io.InputStream in
         6: .line 85
            aload 7 /* in */
            lload 1 /* pos */
            lconst_1
            lsub
            invokestatic org.h2.util.IOUtils.skipFully:(Ljava/io/InputStream;J)V
         7: .line 86
            aload 7 /* in */
            aload 4 /* out */
            iload 3 /* length */
            i2l
            invokestatic org.h2.util.IOUtils.copy:(Ljava/io/InputStream;Ljava/io/OutputStream;J)J
            pop2
         8: .line 87
            aload 7 /* in */
            ifnull 14
            aload 7 /* in */
            invokevirtual java.io.InputStream.close:()V
            goto 14
      StackMap locals: org.h2.jdbc.JdbcBlob long int java.io.ByteArrayOutputStream java.lang.Throwable java.lang.Throwable java.io.InputStream
      StackMap stack: java.lang.Throwable
         9: astore 5
            aload 7 /* in */
            ifnull 10
            aload 7 /* in */
            invokevirtual java.io.InputStream.close:()V
        end local 7 // java.io.InputStream in
      StackMap locals:
      StackMap stack:
        10: aload 5
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        11: astore 6
            aload 5
            ifnonnull 12
            aload 6
            astore 5
            goto 13
      StackMap locals:
      StackMap stack:
        12: aload 5
            aload 6
            if_acmpeq 13
            aload 5
            aload 6
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        13: aload 5
            athrow
        14: .line 88
      StackMap locals:
      StackMap stack:
            aload 4 /* out */
            invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
        15: areturn
        end local 4 // java.io.ByteArrayOutputStream out
        16: .line 89
      StackMap locals: org.h2.jdbc.JdbcBlob long int
      StackMap stack: java.lang.Exception
            astore 4 /* e */
        start local 4 // java.lang.Exception e
        17: .line 90
            aload 0 /* this */
            aload 4 /* e */
            invokevirtual org.h2.jdbc.JdbcBlob.logAndConvert:(Ljava/lang/Throwable;)Ljava/sql/SQLException;
            athrow
        end local 4 // java.lang.Exception e
        end local 3 // int length
        end local 1 // long pos
        end local 0 // org.h2.jdbc.JdbcBlob this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   18     0    this  Lorg/h2/jdbc/JdbcBlob;
            0   18     1     pos  J
            0   18     3  length  I
            4   16     4     out  Ljava/io/ByteArrayOutputStream;
            6   10     7      in  Ljava/io/InputStream;
           17   18     4       e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           6     8       9  any
           5    11      11  any
           0    15      16  Class java.lang.Exception
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
        Name  Flags
      pos     
      length  

  public int setBytes(long, byte[]);
    descriptor: (J[B)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // org.h2.jdbc.JdbcBlob this
        start local 1 // long pos
        start local 3 // byte[] bytes
         0: .line 105
            aload 3 /* bytes */
            ifnonnull 2
         1: .line 106
            new java.lang.NullPointerException
            dup
            invokespecial java.lang.NullPointerException.<init>:()V
            athrow
         2: .line 109
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.h2.jdbc.JdbcBlob.isDebugEnabled:()Z
            ifeq 4
         3: .line 110
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "setBytes("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 1 /* pos */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* bytes */
            invokestatic org.h2.jdbc.JdbcBlob.quoteBytes:([B)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ");"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.h2.jdbc.JdbcBlob.debugCode:(Ljava/lang/String;)V
         4: .line 112
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.h2.jdbc.JdbcBlob.checkEditable:()V
         5: .line 113
            lload 1 /* pos */
            lconst_1
            lcmp
            ifeq 7
         6: .line 114
            ldc "pos"
            lload 1 /* pos */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokestatic org.h2.message.DbException.getInvalidValueException:(Ljava/lang/String;Ljava/lang/Object;)Lorg/h2/message/DbException;
            athrow
         7: .line 116
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.jdbc.JdbcBlob.conn:Lorg/h2/jdbc/JdbcConnection;
            new java.io.ByteArrayInputStream
            dup
            aload 3 /* bytes */
            invokespecial java.io.ByteArrayInputStream.<init>:([B)V
            ldc -1
            invokevirtual org.h2.jdbc.JdbcConnection.createBlob:(Ljava/io/InputStream;J)Lorg/h2/value/Value;
            invokevirtual org.h2.jdbc.JdbcBlob.completeWrite:(Lorg/h2/value/Value;)V
         8: .line 117
            aload 3 /* bytes */
            arraylength
         9: ireturn
        10: .line 118
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 4 /* e */
        start local 4 // java.lang.Exception e
        11: .line 119
            aload 0 /* this */
            aload 4 /* e */
            invokevirtual org.h2.jdbc.JdbcBlob.logAndConvert:(Ljava/lang/Throwable;)Ljava/sql/SQLException;
            athrow
        end local 4 // java.lang.Exception e
        end local 3 // byte[] bytes
        end local 1 // long pos
        end local 0 // org.h2.jdbc.JdbcBlob this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   12     0   this  Lorg/h2/jdbc/JdbcBlob;
            0   12     1    pos  J
            0   12     3  bytes  [B
           11   12     4      e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           2     9      10  Class java.lang.Exception
    Exceptions:
      throws 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=7, locals=7, args_size=5
        start local 0 // org.h2.jdbc.JdbcBlob this
        start local 1 // long pos
        start local 3 // byte[] bytes
        start local 4 // int offset
        start local 5 // int len
         0: .line 135
            aload 3 /* bytes */
            ifnonnull 2
         1: .line 136
            new java.lang.NullPointerException
            dup
            invokespecial java.lang.NullPointerException.<init>:()V
            athrow
         2: .line 139
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.h2.jdbc.JdbcBlob.isDebugEnabled:()Z
            ifeq 4
         3: .line 140
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "setBytes("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 1 /* pos */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* bytes */
            invokestatic org.h2.jdbc.JdbcBlob.quoteBytes:([B)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 4 /* offset */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 5 /* len */
            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;
            invokevirtual org.h2.jdbc.JdbcBlob.debugCode:(Ljava/lang/String;)V
         4: .line 142
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.h2.jdbc.JdbcBlob.checkEditable:()V
         5: .line 143
            lload 1 /* pos */
            lconst_1
            lcmp
            ifeq 7
         6: .line 144
            ldc "pos"
            lload 1 /* pos */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokestatic org.h2.message.DbException.getInvalidValueException:(Ljava/lang/String;Ljava/lang/Object;)Lorg/h2/message/DbException;
            athrow
         7: .line 146
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.jdbc.JdbcBlob.conn:Lorg/h2/jdbc/JdbcConnection;
            new java.io.ByteArrayInputStream
            dup
            aload 3 /* bytes */
            iload 4 /* offset */
            iload 5 /* len */
            invokespecial java.io.ByteArrayInputStream.<init>:([BII)V
            ldc -1
            invokevirtual org.h2.jdbc.JdbcConnection.createBlob:(Ljava/io/InputStream;J)Lorg/h2/value/Value;
            invokevirtual org.h2.jdbc.JdbcBlob.completeWrite:(Lorg/h2/value/Value;)V
         8: .line 147
            aload 0 /* this */
            getfield org.h2.jdbc.JdbcBlob.value:Lorg/h2/value/Value;
            invokevirtual org.h2.value.Value.getType:()Lorg/h2/value/TypeInfo;
            invokevirtual org.h2.value.TypeInfo.getPrecision:()J
            l2i
         9: ireturn
        10: .line 148
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 6 /* e */
        start local 6 // java.lang.Exception e
        11: .line 149
            aload 0 /* this */
            aload 6 /* e */
            invokevirtual org.h2.jdbc.JdbcBlob.logAndConvert:(Ljava/lang/Throwable;)Ljava/sql/SQLException;
            athrow
        end local 6 // java.lang.Exception e
        end local 5 // int len
        end local 4 // int offset
        end local 3 // byte[] bytes
        end local 1 // long pos
        end local 0 // org.h2.jdbc.JdbcBlob this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   12     0    this  Lorg/h2/jdbc/JdbcBlob;
            0   12     1     pos  J
            0   12     3   bytes  [B
            0   12     4  offset  I
            0   12     5     len  I
           11   12     6       e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           2     9      10  Class java.lang.Exception
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
        Name  Flags
      pos     
      bytes   
      offset  
      len     

  public java.io.InputStream getBinaryStream();
    descriptor: ()Ljava/io/InputStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.jdbc.JdbcBlob this
         0: .line 155
            aload 0 /* this */
            invokespecial org.h2.jdbc.JdbcLob.getBinaryStream:()Ljava/io/InputStream;
            areturn
        end local 0 // org.h2.jdbc.JdbcBlob this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/jdbc/JdbcBlob;
    Exceptions:
      throws java.sql.SQLException

  public java.io.OutputStream setBinaryStream(long);
    descriptor: (J)Ljava/io/OutputStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // org.h2.jdbc.JdbcBlob this
        start local 1 // long pos
         0: .line 171
            aload 0 /* this */
            invokevirtual org.h2.jdbc.JdbcBlob.isDebugEnabled:()Z
            ifeq 2
         1: .line 172
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "setBinaryStream("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 1 /* pos */
            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;
            invokevirtual org.h2.jdbc.JdbcBlob.debugCode:(Ljava/lang/String;)V
         2: .line 174
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.h2.jdbc.JdbcBlob.checkEditable:()V
         3: .line 175
            lload 1 /* pos */
            lconst_1
            lcmp
            ifeq 5
         4: .line 176
            ldc "pos"
            lload 1 /* pos */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokestatic org.h2.message.DbException.getInvalidValueException:(Ljava/lang/String;Ljava/lang/Object;)Lorg/h2/message/DbException;
            athrow
         5: .line 178
      StackMap locals:
      StackMap stack:
            new java.io.PipedInputStream
            dup
            invokespecial java.io.PipedInputStream.<init>:()V
            astore 3 /* in */
        start local 3 // java.io.PipedInputStream in
         6: .line 179
            new org.h2.jdbc.JdbcBlob$1
            dup
            aload 0 /* this */
            aload 3 /* in */
            invokespecial org.h2.jdbc.JdbcBlob$1.<init>:(Lorg/h2/jdbc/JdbcBlob;Ljava/io/PipedInputStream;)V
            astore 4 /* task */
        start local 4 // org.h2.util.Task task
         7: .line 185
            new org.h2.jdbc.JdbcLob$LobPipedOutputStream
            dup
            aload 0 /* this */
            aload 3 /* in */
            aload 4 /* task */
            invokespecial org.h2.jdbc.JdbcLob$LobPipedOutputStream.<init>:(Lorg/h2/jdbc/JdbcLob;Ljava/io/PipedInputStream;Lorg/h2/util/Task;)V
            astore 5 /* out */
        start local 5 // org.h2.jdbc.JdbcLob$LobPipedOutputStream out
         8: .line 186
            aload 4 /* task */
            invokevirtual org.h2.util.Task.execute:()Lorg/h2/util/Task;
            pop
         9: .line 187
            aload 0 /* this */
            getstatic org.h2.jdbc.JdbcLob$State.SET_CALLED:Lorg/h2/jdbc/JdbcLob$State;
            putfield org.h2.jdbc.JdbcBlob.state:Lorg/h2/jdbc/JdbcLob$State;
        10: .line 188
            new java.io.BufferedOutputStream
            dup
            aload 5 /* out */
            invokespecial java.io.BufferedOutputStream.<init>:(Ljava/io/OutputStream;)V
        11: areturn
        end local 5 // org.h2.jdbc.JdbcLob$LobPipedOutputStream out
        end local 4 // org.h2.util.Task task
        end local 3 // java.io.PipedInputStream in
        12: .line 189
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 3 /* e */
        start local 3 // java.lang.Exception e
        13: .line 190
            aload 0 /* this */
            aload 3 /* e */
            invokevirtual org.h2.jdbc.JdbcBlob.logAndConvert:(Ljava/lang/Throwable;)Ljava/sql/SQLException;
            athrow
        end local 3 // java.lang.Exception e
        end local 1 // long pos
        end local 0 // org.h2.jdbc.JdbcBlob this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0  this  Lorg/h2/jdbc/JdbcBlob;
            0   14     1   pos  J
            6   12     3    in  Ljava/io/PipedInputStream;
            7   12     4  task  Lorg/h2/util/Task;
            8   12     5   out  Lorg/h2/jdbc/JdbcLob$LobPipedOutputStream;
           13   14     3     e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0    11      12  Class java.lang.Exception
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
      Name  Flags
      pos   

  public long position(byte[], long);
    descriptor: ([BJ)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.h2.jdbc.JdbcBlob this
        start local 1 // byte[] pattern
        start local 2 // long start
         0: .line 203
            aload 0 /* this */
            invokevirtual org.h2.jdbc.JdbcBlob.isDebugEnabled:()Z
            ifeq 2
         1: .line 204
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "position("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* pattern */
            invokestatic org.h2.jdbc.JdbcBlob.quoteBytes:([B)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            lload 2 /* start */
            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;
            invokevirtual org.h2.jdbc.JdbcBlob.debugCode:(Ljava/lang/String;)V
         2: .line 246
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "LOB search"
            invokevirtual org.h2.jdbc.JdbcBlob.unsupported:(Ljava/lang/String;)Ljava/sql/SQLException;
            athrow
        end local 2 // long start
        end local 1 // byte[] pattern
        end local 0 // org.h2.jdbc.JdbcBlob this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lorg/h2/jdbc/JdbcBlob;
            0    3     1  pattern  [B
            0    3     2    start  J
    Exceptions:
      throws 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=4, locals=4, args_size=3
        start local 0 // org.h2.jdbc.JdbcBlob this
        start local 1 // java.sql.Blob blobPattern
        start local 2 // long start
         0: .line 258
            aload 0 /* this */
            invokevirtual org.h2.jdbc.JdbcBlob.isDebugEnabled:()Z
            ifeq 2
         1: .line 259
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "position(blobPattern, "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 2 /* start */
            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;
            invokevirtual org.h2.jdbc.JdbcBlob.debugCode:(Ljava/lang/String;)V
         2: .line 281
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "LOB subset"
            invokevirtual org.h2.jdbc.JdbcBlob.unsupported:(Ljava/lang/String;)Ljava/sql/SQLException;
            athrow
        end local 2 // long start
        end local 1 // java.sql.Blob blobPattern
        end local 0 // org.h2.jdbc.JdbcBlob this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0         this  Lorg/h2/jdbc/JdbcBlob;
            0    3     1  blobPattern  Ljava/sql/Blob;
            0    3     2        start  J
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
             Name  Flags
      blobPattern  
      start        

  public java.io.InputStream getBinaryStream(long, long);
    descriptor: (JJ)Ljava/io/InputStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // org.h2.jdbc.JdbcBlob this
        start local 1 // long pos
        start local 3 // long length
         0: .line 294
            aload 0 /* this */
            invokevirtual org.h2.jdbc.JdbcBlob.isDebugEnabled:()Z
            ifeq 2
         1: .line 295
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "getBinaryStream("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 1 /* pos */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            lload 3 /* length */
            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;
            invokevirtual org.h2.jdbc.JdbcBlob.debugCode:(Ljava/lang/String;)V
         2: .line 297
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.h2.jdbc.JdbcBlob.checkReadable:()V
         3: .line 298
            aload 0 /* this */
            getfield org.h2.jdbc.JdbcBlob.state:Lorg/h2/jdbc/JdbcLob$State;
            getstatic org.h2.jdbc.JdbcLob$State.NEW:Lorg/h2/jdbc/JdbcLob$State;
            if_acmpne 8
         4: .line 299
            lload 1 /* pos */
            lconst_1
            lcmp
            ifeq 6
         5: .line 300
            ldc "pos"
            lload 1 /* pos */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokestatic org.h2.message.DbException.getInvalidValueException:(Ljava/lang/String;Ljava/lang/Object;)Lorg/h2/message/DbException;
            athrow
         6: .line 302
      StackMap locals:
      StackMap stack:
            lload 3 /* length */
            lconst_0
            lcmp
            ifeq 8
         7: .line 303
            ldc "length"
            lload 1 /* pos */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokestatic org.h2.message.DbException.getInvalidValueException:(Ljava/lang/String;Ljava/lang/Object;)Lorg/h2/message/DbException;
            athrow
         8: .line 306
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.jdbc.JdbcBlob.value:Lorg/h2/value/Value;
            lload 1 /* pos */
            lload 3 /* length */
            invokevirtual org.h2.value.Value.getInputStream:(JJ)Ljava/io/InputStream;
         9: areturn
        10: .line 307
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 5 /* e */
        start local 5 // java.lang.Exception e
        11: .line 308
            aload 0 /* this */
            aload 5 /* e */
            invokevirtual org.h2.jdbc.JdbcBlob.logAndConvert:(Ljava/lang/Throwable;)Ljava/sql/SQLException;
            athrow
        end local 5 // java.lang.Exception e
        end local 3 // long length
        end local 1 // long pos
        end local 0 // org.h2.jdbc.JdbcBlob this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   12     0    this  Lorg/h2/jdbc/JdbcBlob;
            0   12     1     pos  J
            0   12     3  length  J
           11   12     5       e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     9      10  Class java.lang.Exception
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
        Name  Flags
      pos     
      length  
}
SourceFile: "JdbcBlob.java"
NestMembers:
  org.h2.jdbc.JdbcBlob$1
InnerClasses:
  org.h2.jdbc.JdbcBlob$1
  final LobPipedOutputStream = org.h2.jdbc.JdbcLob$LobPipedOutputStream of org.h2.jdbc.JdbcLob
  public final State = org.h2.jdbc.JdbcLob$State of org.h2.jdbc.JdbcLob