public abstract class org.h2.jdbc.JdbcLob extends org.h2.message.TraceObject
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.h2.jdbc.JdbcLob
  super_class: org.h2.message.TraceObject
{
  final org.h2.jdbc.JdbcConnection conn;
    descriptor: Lorg/h2/jdbc/JdbcConnection;
    flags: (0x0010) ACC_FINAL

  org.h2.value.Value value;
    descriptor: Lorg/h2/value/Value;
    flags: (0x0000) 

  org.h2.jdbc.JdbcLob$State state;
    descriptor: Lorg/h2/jdbc/JdbcLob$State;
    flags: (0x0000) 

  void <init>(org.h2.jdbc.JdbcConnection, org.h2.value.Value, org.h2.jdbc.JdbcLob$State, int, int);
    descriptor: (Lorg/h2/jdbc/JdbcConnection;Lorg/h2/value/Value;Lorg/h2/jdbc/JdbcLob$State;II)V
    flags: (0x0000) 
    Code:
      stack=4, locals=6, args_size=6
        start local 0 // org.h2.jdbc.JdbcLob 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 type
        start local 5 // int id
         0: .line 87
            aload 0 /* this */
            invokespecial org.h2.message.TraceObject.<init>:()V
         1: .line 88
            aload 0 /* this */
            aload 1 /* conn */
            invokevirtual org.h2.jdbc.JdbcConnection.getSession:()Lorg/h2/engine/SessionInterface;
            invokeinterface org.h2.engine.SessionInterface.getTrace:()Lorg/h2/message/Trace;
            iload 4 /* type */
            iload 5 /* id */
            invokevirtual org.h2.jdbc.JdbcLob.setTrace:(Lorg/h2/message/Trace;II)V
         2: .line 89
            aload 0 /* this */
            aload 1 /* conn */
            putfield org.h2.jdbc.JdbcLob.conn:Lorg/h2/jdbc/JdbcConnection;
         3: .line 90
            aload 0 /* this */
            aload 2 /* value */
            putfield org.h2.jdbc.JdbcLob.value:Lorg/h2/value/Value;
         4: .line 91
            aload 0 /* this */
            aload 3 /* state */
            putfield org.h2.jdbc.JdbcLob.state:Lorg/h2/jdbc/JdbcLob$State;
         5: .line 92
            return
        end local 5 // int id
        end local 4 // int type
        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.JdbcLob this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   this  Lorg/h2/jdbc/JdbcLob;
            0    6     1   conn  Lorg/h2/jdbc/JdbcConnection;
            0    6     2  value  Lorg/h2/value/Value;
            0    6     3  state  Lorg/h2/jdbc/JdbcLob$State;
            0    6     4   type  I
            0    6     5     id  I
    MethodParameters:
       Name  Flags
      conn   
      value  
      state  
      type   
      id     

  void checkClosed();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.h2.jdbc.JdbcLob this
         0: .line 99
            aload 0 /* this */
            getfield org.h2.jdbc.JdbcLob.conn:Lorg/h2/jdbc/JdbcConnection;
            invokevirtual org.h2.jdbc.JdbcConnection.checkClosed:()V
         1: .line 100
            aload 0 /* this */
            getfield org.h2.jdbc.JdbcLob.state:Lorg/h2/jdbc/JdbcLob$State;
            getstatic org.h2.jdbc.JdbcLob$State.CLOSED:Lorg/h2/jdbc/JdbcLob$State;
            if_acmpne 3
         2: .line 101
            ldc 90007
            invokestatic org.h2.message.DbException.get:(I)Lorg/h2/message/DbException;
            athrow
         3: .line 103
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.h2.jdbc.JdbcLob this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/h2/jdbc/JdbcLob;

  void checkEditable();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.h2.jdbc.JdbcLob this
         0: .line 110
            aload 0 /* this */
            invokevirtual org.h2.jdbc.JdbcLob.checkClosed:()V
         1: .line 111
            aload 0 /* this */
            getfield org.h2.jdbc.JdbcLob.state:Lorg/h2/jdbc/JdbcLob$State;
            getstatic org.h2.jdbc.JdbcLob$State.NEW:Lorg/h2/jdbc/JdbcLob$State;
            if_acmpeq 3
         2: .line 112
            ldc "Allocate a new object to set its value."
            invokestatic org.h2.message.DbException.getUnsupportedException:(Ljava/lang/String;)Lorg/h2/message/DbException;
            athrow
         3: .line 114
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.h2.jdbc.JdbcLob this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/h2/jdbc/JdbcLob;

  void checkReadable();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.h2.jdbc.JdbcLob this
         0: .line 121
            aload 0 /* this */
            invokevirtual org.h2.jdbc.JdbcLob.checkClosed:()V
         1: .line 122
            aload 0 /* this */
            getfield org.h2.jdbc.JdbcLob.state:Lorg/h2/jdbc/JdbcLob$State;
            getstatic org.h2.jdbc.JdbcLob$State.SET_CALLED:Lorg/h2/jdbc/JdbcLob$State;
            if_acmpne 3
         2: .line 123
            ldc "Stream setter is not yet closed."
            invokestatic org.h2.message.DbException.getUnsupportedException:(Ljava/lang/String;)Lorg/h2/message/DbException;
            athrow
         3: .line 125
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.h2.jdbc.JdbcLob this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/h2/jdbc/JdbcLob;
    Exceptions:
      throws java.sql.SQLException, java.io.IOException

  void completeWrite(org.h2.value.Value);
    descriptor: (Lorg/h2/value/Value;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.h2.jdbc.JdbcLob this
        start local 1 // org.h2.value.Value blob
         0: .line 132
            aload 0 /* this */
            invokevirtual org.h2.jdbc.JdbcLob.checkClosed:()V
         1: .line 133
            aload 0 /* this */
            getstatic org.h2.jdbc.JdbcLob$State.WITH_VALUE:Lorg/h2/jdbc/JdbcLob$State;
            putfield org.h2.jdbc.JdbcLob.state:Lorg/h2/jdbc/JdbcLob$State;
         2: .line 134
            aload 0 /* this */
            aload 1 /* blob */
            putfield org.h2.jdbc.JdbcLob.value:Lorg/h2/value/Value;
         3: .line 135
            return
        end local 1 // org.h2.value.Value blob
        end local 0 // org.h2.jdbc.JdbcLob this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/h2/jdbc/JdbcLob;
            0    4     1  blob  Lorg/h2/value/Value;
    MethodParameters:
      Name  Flags
      blob  

  public void free();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.h2.jdbc.JdbcLob this
         0: .line 141
            aload 0 /* this */
            ldc "free"
            invokevirtual org.h2.jdbc.JdbcLob.debugCodeCall:(Ljava/lang/String;)V
         1: .line 142
            aload 0 /* this */
            getstatic org.h2.jdbc.JdbcLob$State.CLOSED:Lorg/h2/jdbc/JdbcLob$State;
            putfield org.h2.jdbc.JdbcLob.state:Lorg/h2/jdbc/JdbcLob$State;
         2: .line 143
            aload 0 /* this */
            aconst_null
            putfield org.h2.jdbc.JdbcLob.value:Lorg/h2/value/Value;
         3: .line 144
            return
        end local 0 // org.h2.jdbc.JdbcLob this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/h2/jdbc/JdbcLob;

  java.io.InputStream getBinaryStream();
    descriptor: ()Ljava/io/InputStream;
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.h2.jdbc.JdbcLob this
         0: .line 153
            aload 0 /* this */
            ldc "getBinaryStream"
            invokevirtual org.h2.jdbc.JdbcLob.debugCodeCall:(Ljava/lang/String;)V
         1: .line 154
            aload 0 /* this */
            invokevirtual org.h2.jdbc.JdbcLob.checkReadable:()V
         2: .line 155
            aload 0 /* this */
            getfield org.h2.jdbc.JdbcLob.value:Lorg/h2/value/Value;
            invokevirtual org.h2.value.Value.getInputStream:()Ljava/io/InputStream;
         3: areturn
         4: .line 156
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 1 /* e */
        start local 1 // java.lang.Exception e
         5: .line 157
            aload 0 /* this */
            aload 1 /* e */
            invokevirtual org.h2.jdbc.JdbcLob.logAndConvert:(Ljava/lang/Throwable;)Ljava/sql/SQLException;
            athrow
        end local 1 // java.lang.Exception e
        end local 0 // org.h2.jdbc.JdbcLob this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/h2/jdbc/JdbcLob;
            5    6     1     e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     3       4  Class java.lang.Exception
    Exceptions:
      throws java.sql.SQLException

  java.io.Reader getCharacterStream();
    descriptor: ()Ljava/io/Reader;
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.h2.jdbc.JdbcLob this
         0: .line 168
            aload 0 /* this */
            ldc "getCharacterStream"
            invokevirtual org.h2.jdbc.JdbcLob.debugCodeCall:(Ljava/lang/String;)V
         1: .line 169
            aload 0 /* this */
            invokevirtual org.h2.jdbc.JdbcLob.checkReadable:()V
         2: .line 170
            aload 0 /* this */
            getfield org.h2.jdbc.JdbcLob.value:Lorg/h2/value/Value;
            invokevirtual org.h2.value.Value.getReader:()Ljava/io/Reader;
         3: areturn
         4: .line 171
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 1 /* e */
        start local 1 // java.lang.Exception e
         5: .line 172
            aload 0 /* this */
            aload 1 /* e */
            invokevirtual org.h2.jdbc.JdbcLob.logAndConvert:(Ljava/lang/Throwable;)Ljava/sql/SQLException;
            athrow
        end local 1 // java.lang.Exception e
        end local 0 // org.h2.jdbc.JdbcLob this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/h2/jdbc/JdbcLob;
            5    6     1     e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     3       4  Class java.lang.Exception
    Exceptions:
      throws java.sql.SQLException

  java.io.Writer setCharacterStreamImpl();
    descriptor: ()Ljava/io/Writer;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.jdbc.JdbcLob this
         0: .line 183
            aload 0 /* this */
            invokevirtual org.h2.jdbc.JdbcLob.setClobOutputStreamImpl:()Lorg/h2/jdbc/JdbcLob$LobPipedOutputStream;
            invokestatic org.h2.util.IOUtils.getBufferedWriter:(Ljava/io/OutputStream;)Ljava/io/Writer;
            areturn
        end local 0 // org.h2.jdbc.JdbcLob this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/jdbc/JdbcLob;
    Exceptions:
      throws java.io.IOException

  org.h2.jdbc.JdbcLob$LobPipedOutputStream setClobOutputStreamImpl();
    descriptor: ()Lorg/h2/jdbc/JdbcLob$LobPipedOutputStream;
    flags: (0x0000) 
    Code:
      stack=5, locals=4, args_size=1
        start local 0 // org.h2.jdbc.JdbcLob this
         0: .line 196
            new java.io.PipedInputStream
            dup
            invokespecial java.io.PipedInputStream.<init>:()V
            astore 1 /* in */
        start local 1 // java.io.PipedInputStream in
         1: .line 197
            new org.h2.jdbc.JdbcLob$1
            dup
            aload 0 /* this */
            aload 1 /* in */
            invokespecial org.h2.jdbc.JdbcLob$1.<init>:(Lorg/h2/jdbc/JdbcLob;Ljava/io/PipedInputStream;)V
            astore 2 /* task */
        start local 2 // org.h2.util.Task task
         2: .line 203
            new org.h2.jdbc.JdbcLob$LobPipedOutputStream
            dup
            aload 0 /* this */
            aload 1 /* in */
            aload 2 /* task */
            invokespecial org.h2.jdbc.JdbcLob$LobPipedOutputStream.<init>:(Lorg/h2/jdbc/JdbcLob;Ljava/io/PipedInputStream;Lorg/h2/util/Task;)V
            astore 3 /* out */
        start local 3 // org.h2.jdbc.JdbcLob$LobPipedOutputStream out
         3: .line 204
            aload 2 /* task */
            invokevirtual org.h2.util.Task.execute:()Lorg/h2/util/Task;
            pop
         4: .line 205
            aload 3 /* out */
            areturn
        end local 3 // org.h2.jdbc.JdbcLob$LobPipedOutputStream out
        end local 2 // org.h2.util.Task task
        end local 1 // java.io.PipedInputStream in
        end local 0 // org.h2.jdbc.JdbcLob this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/h2/jdbc/JdbcLob;
            1    5     1    in  Ljava/io/PipedInputStream;
            2    5     2  task  Lorg/h2/util/Task;
            3    5     3   out  Lorg/h2/jdbc/JdbcLob$LobPipedOutputStream;
    Exceptions:
      throws java.io.IOException

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.h2.jdbc.JdbcLob this
         0: .line 213
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 0 /* this */
            invokevirtual org.h2.jdbc.JdbcLob.getTraceObjectName:()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;
            astore 1 /* builder */
        start local 1 // java.lang.StringBuilder builder
         1: .line 214
            aload 0 /* this */
            getfield org.h2.jdbc.JdbcLob.state:Lorg/h2/jdbc/JdbcLob$State;
            getstatic org.h2.jdbc.JdbcLob$State.SET_CALLED:Lorg/h2/jdbc/JdbcLob$State;
            if_acmpne 4
         2: .line 215
            aload 1 /* builder */
            ldc "<setter_in_progress>"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         3: .line 216
            goto 8
      StackMap locals: java.lang.StringBuilder
      StackMap stack:
         4: aload 0 /* this */
            getfield org.h2.jdbc.JdbcLob.state:Lorg/h2/jdbc/JdbcLob$State;
            getstatic org.h2.jdbc.JdbcLob$State.CLOSED:Lorg/h2/jdbc/JdbcLob$State;
            if_acmpne 7
         5: .line 217
            aload 1 /* builder */
            ldc "<closed>"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         6: .line 218
            goto 8
         7: .line 219
      StackMap locals:
      StackMap stack:
            aload 1 /* builder */
            aload 0 /* this */
            getfield org.h2.jdbc.JdbcLob.value:Lorg/h2/value/Value;
            invokevirtual org.h2.value.Value.getTraceSQL:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         8: .line 221
      StackMap locals:
      StackMap stack:
            aload 1 /* builder */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuilder builder
        end local 0 // org.h2.jdbc.JdbcLob this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    9     0     this  Lorg/h2/jdbc/JdbcLob;
            1    9     1  builder  Ljava/lang/StringBuilder;
}
SourceFile: "JdbcLob.java"
NestMembers:
  org.h2.jdbc.JdbcLob$1  org.h2.jdbc.JdbcLob$LobPipedOutputStream  org.h2.jdbc.JdbcLob$State
InnerClasses:
  org.h2.jdbc.JdbcLob$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