public class org.h2.server.TcpServerThread implements java.lang.Runnable
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.h2.server.TcpServerThread
  super_class: java.lang.Object
{
  protected final org.h2.value.Transfer transfer;
    descriptor: Lorg/h2/value/Transfer;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  private final org.h2.server.TcpServer server;
    descriptor: Lorg/h2/server/TcpServer;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private org.h2.engine.Session session;
    descriptor: Lorg/h2/engine/Session;
    flags: (0x0002) ACC_PRIVATE

  private boolean stop;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private java.lang.Thread thread;
    descriptor: Ljava/lang/Thread;
    flags: (0x0002) ACC_PRIVATE

  private org.h2.command.Command commit;
    descriptor: Lorg/h2/command/Command;
    flags: (0x0002) ACC_PRIVATE

  private final org.h2.util.SmallMap cache;
    descriptor: Lorg/h2/util/SmallMap;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.h2.util.SmallLRUCache<java.lang.Long, org.h2.server.TcpServerThread$CachedInputStream> lobs;
    descriptor: Lorg/h2/util/SmallLRUCache;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lorg/h2/util/SmallLRUCache<Ljava/lang/Long;Lorg/h2/server/TcpServerThread$CachedInputStream;>;

  private final int threadId;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private int clientVersion;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String sessionId;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  void <init>(java.net.Socket, org.h2.server.TcpServer, int);
    descriptor: (Ljava/net/Socket;Lorg/h2/server/TcpServer;I)V
    flags: (0x0000) 
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.h2.server.TcpServerThread this
        start local 1 // java.net.Socket socket
        start local 2 // org.h2.server.TcpServer server
        start local 3 // int id
         0: .line 66
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 56
            aload 0 /* this */
         2: .line 57
            new org.h2.util.SmallMap
            dup
            getstatic org.h2.engine.SysProperties.SERVER_CACHED_OBJECTS:I
            invokespecial org.h2.util.SmallMap.<init>:(I)V
            putfield org.h2.server.TcpServerThread.cache:Lorg/h2/util/SmallMap;
         3: .line 58
            aload 0 /* this */
         4: .line 60
            getstatic org.h2.engine.SysProperties.SERVER_CACHED_OBJECTS:I
         5: .line 61
            getstatic org.h2.engine.SysProperties.SERVER_RESULT_SET_FETCH_SIZE:I
            iconst_5
            imul
         6: .line 59
            invokestatic java.lang.Math.max:(II)I
            invokestatic org.h2.util.SmallLRUCache.newInstance:(I)Lorg/h2/util/SmallLRUCache;
            putfield org.h2.server.TcpServerThread.lobs:Lorg/h2/util/SmallLRUCache;
         7: .line 67
            aload 0 /* this */
            aload 2 /* server */
            putfield org.h2.server.TcpServerThread.server:Lorg/h2/server/TcpServer;
         8: .line 68
            aload 0 /* this */
            iload 3 /* id */
            putfield org.h2.server.TcpServerThread.threadId:I
         9: .line 69
            aload 0 /* this */
            new org.h2.value.Transfer
            dup
            aconst_null
            aload 1 /* socket */
            invokespecial org.h2.value.Transfer.<init>:(Lorg/h2/engine/SessionInterface;Ljava/net/Socket;)V
            putfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
        10: .line 70
            return
        end local 3 // int id
        end local 2 // org.h2.server.TcpServer server
        end local 1 // java.net.Socket socket
        end local 0 // org.h2.server.TcpServerThread this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   11     0    this  Lorg/h2/server/TcpServerThread;
            0   11     1  socket  Ljava/net/Socket;
            0   11     2  server  Lorg/h2/server/TcpServer;
            0   11     3      id  I
    MethodParameters:
        Name  Flags
      socket  
      server  
      id      

  private void trace(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.h2.server.TcpServerThread this
        start local 1 // java.lang.String s
         0: .line 73
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.server:Lorg/h2/server/TcpServer;
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 0 /* this */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* s */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.h2.server.TcpServer.trace:(Ljava/lang/String;)V
         1: .line 74
            return
        end local 1 // java.lang.String s
        end local 0 // org.h2.server.TcpServerThread this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/h2/server/TcpServerThread;
            0    2     1     s  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      s     

  public void run();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=11, args_size=1
        start local 0 // org.h2.server.TcpServerThread this
         0: .line 79
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            invokevirtual org.h2.value.Transfer.init:()V
         1: .line 80
            aload 0 /* this */
            ldc "Connect"
            invokevirtual org.h2.server.TcpServerThread.trace:(Ljava/lang/String;)V
         2: .line 84
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            invokevirtual org.h2.value.Transfer.getSocket:()Ljava/net/Socket;
            astore 1 /* socket */
        start local 1 // java.net.Socket socket
         3: .line 85
            aload 1 /* socket */
            ifnonnull 6
         4: .line 184
            aload 0 /* this */
            invokevirtual org.h2.server.TcpServerThread.close:()V
         5: .line 87
            return
         6: .line 89
      StackMap locals: java.net.Socket
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.server:Lorg/h2/server/TcpServer;
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            invokevirtual org.h2.value.Transfer.getSocket:()Ljava/net/Socket;
            invokevirtual org.h2.server.TcpServer.allow:(Ljava/net/Socket;)Z
            ifne 8
         7: .line 90
            ldc 90117
            invokestatic org.h2.message.DbException.get:(I)Lorg/h2/message/DbException;
            athrow
         8: .line 92
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            invokevirtual org.h2.value.Transfer.readInt:()I
            istore 2 /* minClientVersion */
        start local 2 // int minClientVersion
         9: .line 93
            iload 2 /* minClientVersion */
            bipush 6
            if_icmpge 13
        10: .line 94
            ldc 90047
            iconst_2
            anewarray java.lang.String
            dup
            iconst_0
        11: .line 95
            iload 2 /* minClientVersion */
            invokestatic java.lang.Integer.toString:(I)Ljava/lang/String;
            aastore
            dup
            iconst_1
            ldc "9"
            aastore
        12: .line 94
            invokestatic org.h2.message.DbException.get:(I[Ljava/lang/String;)Lorg/h2/message/DbException;
            athrow
        13: .line 97
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            invokevirtual org.h2.value.Transfer.readInt:()I
            istore 3 /* maxClientVersion */
        start local 3 // int maxClientVersion
        14: .line 98
            iload 3 /* maxClientVersion */
            bipush 9
            if_icmpge 18
        15: .line 99
            ldc 90047
            iconst_2
            anewarray java.lang.String
            dup
            iconst_0
        16: .line 100
            iload 3 /* maxClientVersion */
            invokestatic java.lang.Integer.toString:(I)Ljava/lang/String;
            aastore
            dup
            iconst_1
            ldc "9"
            aastore
        17: .line 99
            invokestatic org.h2.message.DbException.get:(I[Ljava/lang/String;)Lorg/h2/message/DbException;
            athrow
        18: .line 101
      StackMap locals: int
      StackMap stack:
            iload 2 /* minClientVersion */
            bipush 18
            if_icmple 22
        19: .line 102
            ldc 90047
            iconst_2
            anewarray java.lang.String
            dup
            iconst_0
        20: .line 103
            iload 2 /* minClientVersion */
            invokestatic java.lang.Integer.toString:(I)Ljava/lang/String;
            aastore
            dup
            iconst_1
            ldc "18"
            aastore
        21: .line 102
            invokestatic org.h2.message.DbException.get:(I[Ljava/lang/String;)Lorg/h2/message/DbException;
            athrow
        22: .line 105
      StackMap locals:
      StackMap stack:
            iload 3 /* maxClientVersion */
            bipush 18
            if_icmplt 25
        23: .line 106
            aload 0 /* this */
            bipush 18
            putfield org.h2.server.TcpServerThread.clientVersion:I
        24: .line 107
            goto 26
        25: .line 108
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 3 /* maxClientVersion */
            putfield org.h2.server.TcpServerThread.clientVersion:I
        26: .line 110
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.clientVersion:I
            invokevirtual org.h2.value.Transfer.setVersion:(I)V
        27: .line 111
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            invokevirtual org.h2.value.Transfer.readString:()Ljava/lang/String;
            astore 4 /* db */
        start local 4 // java.lang.String db
        28: .line 112
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            invokevirtual org.h2.value.Transfer.readString:()Ljava/lang/String;
            astore 5 /* originalURL */
        start local 5 // java.lang.String originalURL
        29: .line 113
            aload 4 /* db */
            ifnonnull 43
            aload 5 /* originalURL */
            ifnonnull 43
        30: .line 114
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            invokevirtual org.h2.value.Transfer.readString:()Ljava/lang/String;
            astore 6 /* targetSessionId */
        start local 6 // java.lang.String targetSessionId
        31: .line 115
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            invokevirtual org.h2.value.Transfer.readInt:()I
            istore 7 /* command */
        start local 7 // int command
        32: .line 116
            aload 0 /* this */
            iconst_1
            putfield org.h2.server.TcpServerThread.stop:Z
        33: .line 117
            iload 7 /* command */
            bipush 13
            if_icmpne 37
        34: .line 119
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            invokevirtual org.h2.value.Transfer.readInt:()I
            istore 8 /* statementId */
        start local 8 // int statementId
        35: .line 120
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.server:Lorg/h2/server/TcpServer;
            aload 6 /* targetSessionId */
            iload 8 /* statementId */
            invokevirtual org.h2.server.TcpServer.cancelStatement:(Ljava/lang/String;I)V
        end local 8 // int statementId
        36: .line 121
            goto 43
      StackMap locals: org.h2.server.TcpServerThread java.net.Socket int int java.lang.String java.lang.String java.lang.String int
      StackMap stack:
        37: iload 7 /* command */
            bipush 14
            if_icmpne 43
        38: .line 123
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.server:Lorg/h2/server/TcpServer;
            aload 6 /* targetSessionId */
            invokevirtual org.h2.server.TcpServer.checkKeyAndGetDatabaseName:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* db */
        39: .line 124
            aload 6 /* targetSessionId */
            aload 4 /* db */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 42
        40: .line 125
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            iconst_1
            invokevirtual org.h2.value.Transfer.writeInt:(I)Lorg/h2/value/Transfer;
            pop
        41: .line 126
            goto 43
        42: .line 127
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            iconst_0
            invokevirtual org.h2.value.Transfer.writeInt:(I)Lorg/h2/value/Transfer;
            pop
        end local 7 // int command
        end local 6 // java.lang.String targetSessionId
        43: .line 131
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.server:Lorg/h2/server/TcpServer;
            invokevirtual org.h2.server.TcpServer.getBaseDir:()Ljava/lang/String;
            astore 6 /* baseDir */
        start local 6 // java.lang.String baseDir
        44: .line 132
            aload 6 /* baseDir */
            ifnonnull 46
        45: .line 133
            invokestatic org.h2.engine.SysProperties.getBaseDir:()Ljava/lang/String;
            astore 6 /* baseDir */
        46: .line 135
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.server:Lorg/h2/server/TcpServer;
            aload 4 /* db */
            invokevirtual org.h2.server.TcpServer.checkKeyAndGetDatabaseName:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* db */
        47: .line 136
            new org.h2.engine.ConnectionInfo
            dup
            aload 4 /* db */
            invokespecial org.h2.engine.ConnectionInfo.<init>:(Ljava/lang/String;)V
            astore 7 /* ci */
        start local 7 // org.h2.engine.ConnectionInfo ci
        48: .line 137
            aload 7 /* ci */
            aload 5 /* originalURL */
            invokevirtual org.h2.engine.ConnectionInfo.setOriginalURL:(Ljava/lang/String;)V
        49: .line 138
            aload 7 /* ci */
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            invokevirtual org.h2.value.Transfer.readString:()Ljava/lang/String;
            invokevirtual org.h2.engine.ConnectionInfo.setUserName:(Ljava/lang/String;)V
        50: .line 139
            aload 7 /* ci */
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            invokevirtual org.h2.value.Transfer.readBytes:()[B
            invokevirtual org.h2.engine.ConnectionInfo.setUserPasswordHash:([B)V
        51: .line 140
            aload 7 /* ci */
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            invokevirtual org.h2.value.Transfer.readBytes:()[B
            invokevirtual org.h2.engine.ConnectionInfo.setFilePasswordHash:([B)V
        52: .line 141
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            invokevirtual org.h2.value.Transfer.readInt:()I
            istore 8 /* len */
        start local 8 // int len
        53: .line 142
            iconst_0
            istore 9 /* i */
        start local 9 // int i
        54: goto 57
        55: .line 143
      StackMap locals: org.h2.engine.ConnectionInfo int int
      StackMap stack:
            aload 7 /* ci */
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            invokevirtual org.h2.value.Transfer.readString:()Ljava/lang/String;
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            invokevirtual org.h2.value.Transfer.readString:()Ljava/lang/String;
            invokevirtual org.h2.engine.ConnectionInfo.setProperty:(Ljava/lang/String;Ljava/lang/String;)V
        56: .line 142
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        57: iload 9 /* i */
            iload 8 /* len */
            if_icmplt 55
        end local 9 // int i
        58: .line 146
            aload 6 /* baseDir */
            ifnull 60
        59: .line 147
            aload 7 /* ci */
            aload 6 /* baseDir */
            invokevirtual org.h2.engine.ConnectionInfo.setBaseDir:(Ljava/lang/String;)V
        60: .line 149
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.server:Lorg/h2/server/TcpServer;
            invokevirtual org.h2.server.TcpServer.getIfExists:()Z
            ifeq 62
        61: .line 150
            aload 7 /* ci */
            ldc "IFEXISTS"
            ldc "TRUE"
            invokevirtual org.h2.engine.ConnectionInfo.setProperty:(Ljava/lang/String;Ljava/lang/String;)V
        62: .line 152
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            iconst_1
            invokevirtual org.h2.value.Transfer.writeInt:(I)Lorg/h2/value/Transfer;
            pop
        63: .line 153
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.clientVersion:I
            invokevirtual org.h2.value.Transfer.writeInt:(I)Lorg/h2/value/Transfer;
            pop
        64: .line 154
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            invokevirtual org.h2.value.Transfer.flush:()V
        65: .line 155
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.clientVersion:I
            bipush 13
            if_icmplt 68
        66: .line 156
            aload 7 /* ci */
            invokevirtual org.h2.engine.ConnectionInfo.getFilePasswordHash:()[B
            ifnull 68
        67: .line 157
            aload 7 /* ci */
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            invokevirtual org.h2.value.Transfer.readBytes:()[B
            invokevirtual org.h2.engine.ConnectionInfo.setFileEncryptionKey:([B)V
        68: .line 160
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokestatic org.h2.engine.Engine.getInstance:()Lorg/h2/engine/Engine;
            aload 7 /* ci */
            invokevirtual org.h2.engine.Engine.createSession:(Lorg/h2/engine/ConnectionInfo;)Lorg/h2/engine/Session;
            putfield org.h2.server.TcpServerThread.session:Lorg/h2/engine/Session;
        69: .line 161
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.session:Lorg/h2/engine/Session;
            invokevirtual org.h2.value.Transfer.setSession:(Lorg/h2/engine/SessionInterface;)V
        70: .line 162
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.server:Lorg/h2/server/TcpServer;
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.threadId:I
            aload 5 /* originalURL */
            aload 7 /* ci */
            invokevirtual org.h2.engine.ConnectionInfo.getUserName:()Ljava/lang/String;
            invokevirtual org.h2.server.TcpServer.addConnection:(ILjava/lang/String;Ljava/lang/String;)V
        71: .line 163
            aload 0 /* this */
            ldc "Connected"
            invokevirtual org.h2.server.TcpServerThread.trace:(Ljava/lang/String;)V
        end local 8 // int len
        end local 7 // org.h2.engine.ConnectionInfo ci
        end local 6 // java.lang.String baseDir
        end local 5 // java.lang.String originalURL
        end local 4 // java.lang.String db
        end local 3 // int maxClientVersion
        end local 2 // int minClientVersion
        end local 1 // java.net.Socket socket
        72: .line 164
            goto 86
      StackMap locals: org.h2.server.TcpServerThread
      StackMap stack: java.lang.OutOfMemoryError
        73: astore 1 /* e */
        start local 1 // java.lang.OutOfMemoryError e
        74: .line 166
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.server:Lorg/h2/server/TcpServer;
            aload 1 /* e */
            invokevirtual org.h2.server.TcpServer.traceError:(Ljava/lang/Throwable;)V
        75: .line 167
            aload 0 /* this */
            aload 1 /* e */
            invokevirtual org.h2.server.TcpServerThread.sendError:(Ljava/lang/Throwable;)V
        76: .line 168
            aload 0 /* this */
            iconst_1
            putfield org.h2.server.TcpServerThread.stop:Z
        end local 1 // java.lang.OutOfMemoryError e
        77: goto 86
        78: .line 169
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1 /* e */
        start local 1 // java.lang.Throwable e
        79: .line 170
            aload 0 /* this */
            aload 1 /* e */
            invokevirtual org.h2.server.TcpServerThread.sendError:(Ljava/lang/Throwable;)V
        80: .line 171
            aload 0 /* this */
            iconst_1
            putfield org.h2.server.TcpServerThread.stop:Z
        end local 1 // java.lang.Throwable e
        81: .line 173
            goto 86
        82: .line 175
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.h2.server.TcpServerThread.process:()V
        83: .line 176
            goto 86
      StackMap locals:
      StackMap stack: java.lang.Throwable
        84: astore 1 /* e */
        start local 1 // java.lang.Throwable e
        85: .line 177
            aload 0 /* this */
            aload 1 /* e */
            invokevirtual org.h2.server.TcpServerThread.sendError:(Ljava/lang/Throwable;)V
        end local 1 // java.lang.Throwable e
        86: .line 173
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.stop:Z
            ifeq 82
        87: .line 180
            aload 0 /* this */
            ldc "Disconnect"
            invokevirtual org.h2.server.TcpServerThread.trace:(Ljava/lang/String;)V
        88: .line 181
            goto 95
      StackMap locals:
      StackMap stack: java.lang.Throwable
        89: astore 1 /* e */
        start local 1 // java.lang.Throwable e
        90: .line 182
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.server:Lorg/h2/server/TcpServer;
            aload 1 /* e */
            invokevirtual org.h2.server.TcpServer.traceError:(Ljava/lang/Throwable;)V
        end local 1 // java.lang.Throwable e
        91: .line 184
            aload 0 /* this */
            invokevirtual org.h2.server.TcpServerThread.close:()V
            goto 96
        92: .line 183
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 10
        93: .line 184
            aload 0 /* this */
            invokevirtual org.h2.server.TcpServerThread.close:()V
        94: .line 185
            aload 10
            athrow
        95: .line 184
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.h2.server.TcpServerThread.close:()V
        96: .line 186
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.h2.server.TcpServerThread this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   97     0              this  Lorg/h2/server/TcpServerThread;
            3   72     1            socket  Ljava/net/Socket;
            9   72     2  minClientVersion  I
           14   72     3  maxClientVersion  I
           28   72     4                db  Ljava/lang/String;
           29   72     5       originalURL  Ljava/lang/String;
           31   43     6   targetSessionId  Ljava/lang/String;
           32   43     7           command  I
           35   36     8       statementId  I
           44   72     6           baseDir  Ljava/lang/String;
           48   72     7                ci  Lorg/h2/engine/ConnectionInfo;
           53   72     8               len  I
           54   58     9                 i  I
           74   77     1                 e  Ljava/lang/OutOfMemoryError;
           79   81     1                 e  Ljava/lang/Throwable;
           85   86     1                 e  Ljava/lang/Throwable;
           90   91     1                 e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           2     4      73  Class java.lang.OutOfMemoryError
           6    72      73  Class java.lang.OutOfMemoryError
           2     4      78  Class java.lang.Throwable
           6    72      78  Class java.lang.Throwable
          82    83      84  Class java.lang.Throwable
           0     4      89  Class java.lang.Throwable
           6    88      89  Class java.lang.Throwable
           0     4      92  any
           6    91      92  any

  private void closeSession();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // org.h2.server.TcpServerThread this
         0: .line 189
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.session:Lorg/h2/engine/Session;
            ifnull 18
         1: .line 190
            aconst_null
            astore 1 /* closeError */
        start local 1 // java.lang.RuntimeException closeError
         2: .line 192
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.session:Lorg/h2/engine/Session;
            invokevirtual org.h2.engine.Session.close:()V
         3: .line 193
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.server:Lorg/h2/server/TcpServer;
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.threadId:I
            invokevirtual org.h2.server.TcpServer.removeConnection:(I)V
         4: .line 194
            goto 15
      StackMap locals: org.h2.server.TcpServerThread java.lang.RuntimeException
      StackMap stack: java.lang.RuntimeException
         5: astore 2 /* e */
        start local 2 // java.lang.RuntimeException e
         6: .line 195
            aload 2 /* e */
            astore 1 /* closeError */
         7: .line 196
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.server:Lorg/h2/server/TcpServer;
            aload 2 /* e */
            invokevirtual org.h2.server.TcpServer.traceError:(Ljava/lang/Throwable;)V
        end local 2 // java.lang.RuntimeException e
         8: .line 200
            aload 0 /* this */
            aconst_null
            putfield org.h2.server.TcpServerThread.session:Lorg/h2/engine/Session;
            goto 16
         9: .line 197
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 2 /* e */
        start local 2 // java.lang.Exception e
        10: .line 198
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.server:Lorg/h2/server/TcpServer;
            aload 2 /* e */
            invokevirtual org.h2.server.TcpServer.traceError:(Ljava/lang/Throwable;)V
        end local 2 // java.lang.Exception e
        11: .line 200
            aload 0 /* this */
            aconst_null
            putfield org.h2.server.TcpServerThread.session:Lorg/h2/engine/Session;
            goto 16
        12: .line 199
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 3
        13: .line 200
            aload 0 /* this */
            aconst_null
            putfield org.h2.server.TcpServerThread.session:Lorg/h2/engine/Session;
        14: .line 201
            aload 3
            athrow
        15: .line 200
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield org.h2.server.TcpServerThread.session:Lorg/h2/engine/Session;
        16: .line 202
      StackMap locals:
      StackMap stack:
            aload 1 /* closeError */
            ifnull 18
        17: .line 203
            aload 1 /* closeError */
            athrow
        end local 1 // java.lang.RuntimeException closeError
        18: .line 206
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.h2.server.TcpServerThread this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   19     0        this  Lorg/h2/server/TcpServerThread;
            2   18     1  closeError  Ljava/lang/RuntimeException;
            6    8     2           e  Ljava/lang/RuntimeException;
           10   11     2           e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           2     4       5  Class java.lang.RuntimeException
           2     4       9  Class java.lang.Exception
           2     8      12  any
           9    11      12  any

  void close();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // org.h2.server.TcpServerThread this
         0: .line 213
            aload 0 /* this */
            iconst_1
            putfield org.h2.server.TcpServerThread.stop:Z
         1: .line 214
            aload 0 /* this */
            invokevirtual org.h2.server.TcpServerThread.closeSession:()V
         2: .line 215
            goto 13
      StackMap locals:
      StackMap stack: java.lang.Exception
         3: astore 1 /* e */
        start local 1 // java.lang.Exception e
         4: .line 216
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.server:Lorg/h2/server/TcpServer;
            aload 1 /* e */
            invokevirtual org.h2.server.TcpServer.traceError:(Ljava/lang/Throwable;)V
        end local 1 // java.lang.Exception e
         5: .line 218
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            invokevirtual org.h2.value.Transfer.close:()V
         6: .line 219
            aload 0 /* this */
            ldc "Close"
            invokevirtual org.h2.server.TcpServerThread.trace:(Ljava/lang/String;)V
         7: .line 220
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.server:Lorg/h2/server/TcpServer;
            aload 0 /* this */
            invokevirtual org.h2.server.TcpServer.remove:(Lorg/h2/server/TcpServerThread;)V
            goto 16
         8: .line 217
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 2
         9: .line 218
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            invokevirtual org.h2.value.Transfer.close:()V
        10: .line 219
            aload 0 /* this */
            ldc "Close"
            invokevirtual org.h2.server.TcpServerThread.trace:(Ljava/lang/String;)V
        11: .line 220
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.server:Lorg/h2/server/TcpServer;
            aload 0 /* this */
            invokevirtual org.h2.server.TcpServer.remove:(Lorg/h2/server/TcpServerThread;)V
        12: .line 221
            aload 2
            athrow
        13: .line 218
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            invokevirtual org.h2.value.Transfer.close:()V
        14: .line 219
            aload 0 /* this */
            ldc "Close"
            invokevirtual org.h2.server.TcpServerThread.trace:(Ljava/lang/String;)V
        15: .line 220
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.server:Lorg/h2/server/TcpServer;
            aload 0 /* this */
            invokevirtual org.h2.server.TcpServer.remove:(Lorg/h2/server/TcpServerThread;)V
        16: .line 222
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.h2.server.TcpServerThread this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   17     0  this  Lorg/h2/server/TcpServerThread;
            4    5     1     e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     2       3  Class java.lang.Exception
           0     5       8  any

  private void sendError(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=8, args_size=2
        start local 0 // org.h2.server.TcpServerThread this
        start local 1 // java.lang.Throwable t
         0: .line 226
            aload 1 /* t */
            invokestatic org.h2.message.DbException.convert:(Ljava/lang/Throwable;)Lorg/h2/message/DbException;
            invokevirtual org.h2.message.DbException.getSQLException:()Ljava/sql/SQLException;
            astore 2 /* e */
        start local 2 // java.sql.SQLException e
         1: .line 227
            new java.io.StringWriter
            dup
            invokespecial java.io.StringWriter.<init>:()V
            astore 3 /* writer */
        start local 3 // java.io.StringWriter writer
         2: .line 228
            aload 2 /* e */
            new java.io.PrintWriter
            dup
            aload 3 /* writer */
            invokespecial java.io.PrintWriter.<init>:(Ljava/io/Writer;)V
            invokevirtual java.sql.SQLException.printStackTrace:(Ljava/io/PrintWriter;)V
         3: .line 229
            aload 3 /* writer */
            invokevirtual java.io.StringWriter.toString:()Ljava/lang/String;
            astore 4 /* trace */
        start local 4 // java.lang.String trace
         4: .line 232
            aload 2 /* e */
            instanceof org.h2.jdbc.JdbcException
            ifeq 9
         5: .line 233
            aload 2 /* e */
            checkcast org.h2.jdbc.JdbcException
            astore 7 /* j */
        start local 7 // org.h2.jdbc.JdbcException j
         6: .line 234
            aload 7 /* j */
            invokeinterface org.h2.jdbc.JdbcException.getOriginalMessage:()Ljava/lang/String;
            astore 5 /* message */
        start local 5 // java.lang.String message
         7: .line 235
            aload 7 /* j */
            invokeinterface org.h2.jdbc.JdbcException.getSQL:()Ljava/lang/String;
            astore 6 /* sql */
        end local 7 // org.h2.jdbc.JdbcException j
        start local 6 // java.lang.String sql
         8: .line 236
            goto 11
        end local 6 // java.lang.String sql
        end local 5 // java.lang.String message
         9: .line 237
      StackMap locals: java.sql.SQLException java.io.StringWriter java.lang.String
      StackMap stack:
            aload 2 /* e */
            invokevirtual java.sql.SQLException.getMessage:()Ljava/lang/String;
            astore 5 /* message */
        start local 5 // java.lang.String message
        10: .line 238
            aconst_null
            astore 6 /* sql */
        start local 6 // java.lang.String sql
        11: .line 240
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            iconst_0
            invokevirtual org.h2.value.Transfer.writeInt:(I)Lorg/h2/value/Transfer;
        12: .line 241
            aload 2 /* e */
            invokevirtual java.sql.SQLException.getSQLState:()Ljava/lang/String;
            invokevirtual org.h2.value.Transfer.writeString:(Ljava/lang/String;)Lorg/h2/value/Transfer;
            aload 5 /* message */
            invokevirtual org.h2.value.Transfer.writeString:(Ljava/lang/String;)Lorg/h2/value/Transfer;
        13: .line 242
            aload 6 /* sql */
            invokevirtual org.h2.value.Transfer.writeString:(Ljava/lang/String;)Lorg/h2/value/Transfer;
            aload 2 /* e */
            invokevirtual java.sql.SQLException.getErrorCode:()I
            invokevirtual org.h2.value.Transfer.writeInt:(I)Lorg/h2/value/Transfer;
            aload 4 /* trace */
            invokevirtual org.h2.value.Transfer.writeString:(Ljava/lang/String;)Lorg/h2/value/Transfer;
            invokevirtual org.h2.value.Transfer.flush:()V
        end local 6 // java.lang.String sql
        end local 5 // java.lang.String message
        end local 4 // java.lang.String trace
        end local 3 // java.io.StringWriter writer
        end local 2 // java.sql.SQLException e
        14: .line 243
            goto 19
      StackMap locals: org.h2.server.TcpServerThread java.lang.Throwable
      StackMap stack: java.lang.Exception
        15: astore 2 /* e2 */
        start local 2 // java.lang.Exception e2
        16: .line 244
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            invokevirtual org.h2.value.Transfer.isClosed:()Z
            ifne 18
        17: .line 245
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.server:Lorg/h2/server/TcpServer;
            aload 2 /* e2 */
            invokevirtual org.h2.server.TcpServer.traceError:(Ljava/lang/Throwable;)V
        18: .line 248
      StackMap locals: java.lang.Exception
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield org.h2.server.TcpServerThread.stop:Z
        end local 2 // java.lang.Exception e2
        19: .line 250
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Throwable t
        end local 0 // org.h2.server.TcpServerThread this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   20     0     this  Lorg/h2/server/TcpServerThread;
            0   20     1        t  Ljava/lang/Throwable;
            1   14     2        e  Ljava/sql/SQLException;
            2   14     3   writer  Ljava/io/StringWriter;
            4   14     4    trace  Ljava/lang/String;
            7    9     5  message  Ljava/lang/String;
           10   14     5  message  Ljava/lang/String;
            8    9     6      sql  Ljava/lang/String;
           11   14     6      sql  Ljava/lang/String;
            6    8     7        j  Lorg/h2/jdbc/JdbcException;
           16   19     2       e2  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0    14      15  Class java.lang.Exception
    MethodParameters:
      Name  Flags
      t     

  private void setParameters(org.h2.command.Command);
    descriptor: (Lorg/h2/command/Command;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // org.h2.server.TcpServerThread this
        start local 1 // org.h2.command.Command command
         0: .line 253
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            invokevirtual org.h2.value.Transfer.readInt:()I
            istore 2 /* len */
        start local 2 // int len
         1: .line 254
            aload 1 /* command */
            invokevirtual org.h2.command.Command.getParameters:()Ljava/util/ArrayList;
            astore 3 /* params */
        start local 3 // java.util.ArrayList params
         2: .line 255
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         3: goto 7
         4: .line 256
      StackMap locals: int java.util.ArrayList int
      StackMap stack:
            aload 3 /* params */
            iload 4 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast org.h2.expression.Parameter
            astore 5 /* p */
        start local 5 // org.h2.expression.Parameter p
         5: .line 257
            aload 5 /* p */
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            invokevirtual org.h2.value.Transfer.readValue:()Lorg/h2/value/Value;
            invokevirtual org.h2.expression.Parameter.setValue:(Lorg/h2/value/Value;)V
        end local 5 // org.h2.expression.Parameter p
         6: .line 255
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 4 /* i */
            iload 2 /* len */
            if_icmplt 4
        end local 4 // int i
         8: .line 259
            return
        end local 3 // java.util.ArrayList params
        end local 2 // int len
        end local 1 // org.h2.command.Command command
        end local 0 // org.h2.server.TcpServerThread this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    9     0     this  Lorg/h2/server/TcpServerThread;
            0    9     1  command  Lorg/h2/command/Command;
            1    9     2      len  I
            2    9     3   params  Ljava/util/ArrayList<+Lorg/h2/expression/ParameterInterface;>;
            3    8     4        i  I
            5    6     5        p  Lorg/h2/expression/Parameter;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      command  

  private void process();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=14, args_size=1
        start local 0 // org.h2.server.TcpServerThread this
         0: .line 262
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            invokevirtual org.h2.value.Transfer.readInt:()I
            istore 1 /* operation */
        start local 1 // int operation
         1: .line 263
            iload 1 /* operation */
            tableswitch { // 0 - 18
                    0: 2
                    1: 22
                    2: 48
                    3: 80
                    4: 151
                    5: 157
                    6: 168
                    7: 172
                    8: 27
                    9: 178
                   10: 33
                   11: 2
                   12: 184
                   13: 236
                   14: 236
                   15: 190
                   16: 194
                   17: 199
                   18: 2
              default: 236
          }
         2: .line 267
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            invokevirtual org.h2.value.Transfer.readInt:()I
            istore 2 /* id */
        start local 2 // int id
         3: .line 268
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            invokevirtual org.h2.value.Transfer.readString:()Ljava/lang/String;
            astore 3 /* sql */
        start local 3 // java.lang.String sql
         4: .line 269
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.session:Lorg/h2/engine/Session;
            invokevirtual org.h2.engine.Session.getModificationId:()I
            istore 4 /* old */
        start local 4 // int old
         5: .line 270
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.session:Lorg/h2/engine/Session;
            aload 3 /* sql */
            invokevirtual org.h2.engine.Session.prepareLocal:(Ljava/lang/String;)Lorg/h2/command/Command;
            astore 5 /* command */
        start local 5 // org.h2.command.Command command
         6: .line 271
            aload 5 /* command */
            invokevirtual org.h2.command.Command.isReadOnly:()Z
            istore 6 /* readonly */
        start local 6 // boolean readonly
         7: .line 272
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.cache:Lorg/h2/util/SmallMap;
            iload 2 /* id */
            aload 5 /* command */
            invokevirtual org.h2.util.SmallMap.addObject:(ILjava/lang/Object;)I
            pop
         8: .line 273
            aload 5 /* command */
            invokevirtual org.h2.command.Command.isQuery:()Z
            istore 7 /* isQuery */
        start local 7 // boolean isQuery
         9: .line 275
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            aload 0 /* this */
            iload 4 /* old */
            invokevirtual org.h2.server.TcpServerThread.getState:(I)I
            invokevirtual org.h2.value.Transfer.writeInt:(I)Lorg/h2/value/Transfer;
            iload 7 /* isQuery */
            invokevirtual org.h2.value.Transfer.writeBoolean:(Z)Lorg/h2/value/Transfer;
        10: .line 276
            iload 6 /* readonly */
            invokevirtual org.h2.value.Transfer.writeBoolean:(Z)Lorg/h2/value/Transfer;
            pop
        11: .line 278
            iload 1 /* operation */
            bipush 18
            if_icmpne 13
        12: .line 279
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            aload 5 /* command */
            invokevirtual org.h2.command.Command.getCommandType:()I
            invokevirtual org.h2.value.Transfer.writeInt:(I)Lorg/h2/value/Transfer;
            pop
        13: .line 282
      StackMap locals: org.h2.server.TcpServerThread int int java.lang.String int org.h2.command.Command int int
      StackMap stack:
            aload 5 /* command */
            invokevirtual org.h2.command.Command.getParameters:()Ljava/util/ArrayList;
            astore 8 /* params */
        start local 8 // java.util.ArrayList params
        14: .line 284
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            aload 8 /* params */
            invokevirtual java.util.ArrayList.size:()I
            invokevirtual org.h2.value.Transfer.writeInt:(I)Lorg/h2/value/Transfer;
            pop
        15: .line 286
            iload 1 /* operation */
            ifeq 20
        16: .line 287
            aload 8 /* params */
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 10
            goto 19
      StackMap locals: org.h2.server.TcpServerThread int int java.lang.String int org.h2.command.Command int int java.util.ArrayList top java.util.Iterator
      StackMap stack:
        17: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.expression.ParameterInterface
            astore 9 /* p */
        start local 9 // org.h2.expression.ParameterInterface p
        18: .line 288
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            aload 9 /* p */
            invokestatic org.h2.expression.ParameterRemote.writeMetaData:(Lorg/h2/value/Transfer;Lorg/h2/expression/ParameterInterface;)V
        end local 9 // org.h2.expression.ParameterInterface p
        19: .line 287
      StackMap locals:
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 17
        20: .line 291
      StackMap locals: org.h2.server.TcpServerThread int int java.lang.String int org.h2.command.Command int int java.util.ArrayList
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            invokevirtual org.h2.value.Transfer.flush:()V
        21: .line 292
            goto 238
        end local 8 // java.util.ArrayList params
        end local 7 // boolean isQuery
        end local 6 // boolean readonly
        end local 5 // org.h2.command.Command command
        end local 4 // int old
        end local 3 // java.lang.String sql
        end local 2 // int id
        22: .line 295
      StackMap locals: org.h2.server.TcpServerThread int
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield org.h2.server.TcpServerThread.stop:Z
        23: .line 296
            aload 0 /* this */
            invokevirtual org.h2.server.TcpServerThread.closeSession:()V
        24: .line 297
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            iconst_1
            invokevirtual org.h2.value.Transfer.writeInt:(I)Lorg/h2/value/Transfer;
            invokevirtual org.h2.value.Transfer.flush:()V
        25: .line 298
            aload 0 /* this */
            invokevirtual org.h2.server.TcpServerThread.close:()V
        26: .line 299
            goto 238
        27: .line 302
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.commit:Lorg/h2/command/Command;
            ifnonnull 29
        28: .line 303
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.session:Lorg/h2/engine/Session;
            ldc "COMMIT"
            invokevirtual org.h2.engine.Session.prepareLocal:(Ljava/lang/String;)Lorg/h2/command/Command;
            putfield org.h2.server.TcpServerThread.commit:Lorg/h2/command/Command;
        29: .line 305
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.session:Lorg/h2/engine/Session;
            invokevirtual org.h2.engine.Session.getModificationId:()I
            istore 2 /* old */
        start local 2 // int old
        30: .line 306
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.commit:Lorg/h2/command/Command;
            iconst_0
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokevirtual org.h2.command.Command.executeUpdate:(Ljava/lang/Object;)Lorg/h2/result/ResultWithGeneratedKeys;
            pop
        31: .line 307
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            aload 0 /* this */
            iload 2 /* old */
            invokevirtual org.h2.server.TcpServerThread.getState:(I)I
            invokevirtual org.h2.value.Transfer.writeInt:(I)Lorg/h2/value/Transfer;
            invokevirtual org.h2.value.Transfer.flush:()V
        32: .line 308
            goto 238
        end local 2 // int old
        33: .line 311
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            invokevirtual org.h2.value.Transfer.readInt:()I
            istore 2 /* id */
        start local 2 // int id
        34: .line 312
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            invokevirtual org.h2.value.Transfer.readInt:()I
            istore 3 /* objectId */
        start local 3 // int objectId
        35: .line 313
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.cache:Lorg/h2/util/SmallMap;
            iload 2 /* id */
            iconst_0
            invokevirtual org.h2.util.SmallMap.getObject:(IZ)Ljava/lang/Object;
            checkcast org.h2.command.Command
            astore 4 /* command */
        start local 4 // org.h2.command.Command command
        36: .line 314
            aload 4 /* command */
            invokevirtual org.h2.command.Command.getMetaData:()Lorg/h2/result/ResultInterface;
            astore 5 /* result */
        start local 5 // org.h2.result.ResultInterface result
        37: .line 315
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.cache:Lorg/h2/util/SmallMap;
            iload 3 /* objectId */
            aload 5 /* result */
            invokevirtual org.h2.util.SmallMap.addObject:(ILjava/lang/Object;)I
            pop
        38: .line 316
            aload 5 /* result */
            invokeinterface org.h2.result.ResultInterface.getVisibleColumnCount:()I
            istore 6 /* columnCount */
        start local 6 // int columnCount
        39: .line 317
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            iconst_1
            invokevirtual org.h2.value.Transfer.writeInt:(I)Lorg/h2/value/Transfer;
        40: .line 318
            iload 6 /* columnCount */
            invokevirtual org.h2.value.Transfer.writeInt:(I)Lorg/h2/value/Transfer;
            iconst_0
            invokevirtual org.h2.value.Transfer.writeInt:(I)Lorg/h2/value/Transfer;
            pop
        41: .line 319
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        42: goto 45
        43: .line 320
      StackMap locals: org.h2.server.TcpServerThread int int int org.h2.command.Command org.h2.result.ResultInterface int int
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            aload 5 /* result */
            iload 7 /* i */
            invokestatic org.h2.result.ResultColumn.writeColumn:(Lorg/h2/value/Transfer;Lorg/h2/result/ResultInterface;I)V
        44: .line 319
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        45: iload 7 /* i */
            iload 6 /* columnCount */
            if_icmplt 43
        end local 7 // int i
        46: .line 322
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            invokevirtual org.h2.value.Transfer.flush:()V
        47: .line 323
            goto 238
        end local 6 // int columnCount
        end local 5 // org.h2.result.ResultInterface result
        end local 4 // org.h2.command.Command command
        end local 3 // int objectId
        end local 2 // int id
        48: .line 326
      StackMap locals: org.h2.server.TcpServerThread int
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            invokevirtual org.h2.value.Transfer.readInt:()I
            istore 2 /* id */
        start local 2 // int id
        49: .line 327
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            invokevirtual org.h2.value.Transfer.readInt:()I
            istore 3 /* objectId */
        start local 3 // int objectId
        50: .line 328
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            invokevirtual org.h2.value.Transfer.readInt:()I
            istore 4 /* maxRows */
        start local 4 // int maxRows
        51: .line 329
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            invokevirtual org.h2.value.Transfer.readInt:()I
            istore 5 /* fetchSize */
        start local 5 // int fetchSize
        52: .line 330
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.cache:Lorg/h2/util/SmallMap;
            iload 2 /* id */
            iconst_0
            invokevirtual org.h2.util.SmallMap.getObject:(IZ)Ljava/lang/Object;
            checkcast org.h2.command.Command
            astore 6 /* command */
        start local 6 // org.h2.command.Command command
        53: .line 331
            aload 0 /* this */
            aload 6 /* command */
            invokevirtual org.h2.server.TcpServerThread.setParameters:(Lorg/h2/command/Command;)V
        54: .line 332
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.session:Lorg/h2/engine/Session;
            invokevirtual org.h2.engine.Session.getModificationId:()I
            istore 7 /* old */
        start local 7 // int old
        55: .line 334
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.session:Lorg/h2/engine/Session;
            dup
            astore 9
            monitorenter
        56: .line 335
            aload 6 /* command */
            iload 4 /* maxRows */
            iconst_0
            invokevirtual org.h2.command.Command.executeQuery:(IZ)Lorg/h2/result/ResultInterface;
            astore 8 /* result */
        start local 8 // org.h2.result.ResultInterface result
        57: .line 334
            aload 9
            monitorexit
        58: goto 61
        end local 8 // org.h2.result.ResultInterface result
      StackMap locals: org.h2.server.TcpServerThread int int int int int org.h2.command.Command int top org.h2.engine.Session
      StackMap stack: java.lang.Throwable
        59: aload 9
            monitorexit
        60: athrow
        start local 8 // org.h2.result.ResultInterface result
        61: .line 337
      StackMap locals: org.h2.server.TcpServerThread int int int int int org.h2.command.Command int org.h2.result.ResultInterface
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.cache:Lorg/h2/util/SmallMap;
            iload 3 /* objectId */
            aload 8 /* result */
            invokevirtual org.h2.util.SmallMap.addObject:(ILjava/lang/Object;)I
            pop
        62: .line 338
            aload 8 /* result */
            invokeinterface org.h2.result.ResultInterface.getVisibleColumnCount:()I
            istore 9 /* columnCount */
        start local 9 // int columnCount
        63: .line 339
            aload 0 /* this */
            iload 7 /* old */
            invokevirtual org.h2.server.TcpServerThread.getState:(I)I
            istore 10 /* state */
        start local 10 // int state
        64: .line 340
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            iload 10 /* state */
            invokevirtual org.h2.value.Transfer.writeInt:(I)Lorg/h2/value/Transfer;
            iload 9 /* columnCount */
            invokevirtual org.h2.value.Transfer.writeInt:(I)Lorg/h2/value/Transfer;
            pop
        65: .line 341
            aload 8 /* result */
            invokeinterface org.h2.result.ResultInterface.getRowCount:()I
            istore 11 /* rowCount */
        start local 11 // int rowCount
        66: .line 342
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            iload 11 /* rowCount */
            invokevirtual org.h2.value.Transfer.writeInt:(I)Lorg/h2/value/Transfer;
            pop
        67: .line 343
            iconst_0
            istore 12 /* i */
        start local 12 // int i
        68: goto 71
        69: .line 344
      StackMap locals: org.h2.server.TcpServerThread int int int int int org.h2.command.Command int org.h2.result.ResultInterface int int int int
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            aload 8 /* result */
            iload 12 /* i */
            invokestatic org.h2.result.ResultColumn.writeColumn:(Lorg/h2/value/Transfer;Lorg/h2/result/ResultInterface;I)V
        70: .line 343
            iinc 12 /* i */ 1
      StackMap locals:
      StackMap stack:
        71: iload 12 /* i */
            iload 9 /* columnCount */
            if_icmplt 69
        end local 12 // int i
        72: .line 346
            iload 11 /* rowCount */
            iload 5 /* fetchSize */
            invokestatic java.lang.Math.min:(II)I
            istore 12 /* fetch */
        start local 12 // int fetch
        73: .line 347
            iconst_0
            istore 13 /* i */
        start local 13 // int i
        74: goto 77
        75: .line 348
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 8 /* result */
            invokevirtual org.h2.server.TcpServerThread.sendRow:(Lorg/h2/result/ResultInterface;)V
        76: .line 347
            iinc 13 /* i */ 1
      StackMap locals:
      StackMap stack:
        77: iload 13 /* i */
            iload 12 /* fetch */
            if_icmplt 75
        end local 13 // int i
        78: .line 350
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            invokevirtual org.h2.value.Transfer.flush:()V
        79: .line 351
            goto 238
        end local 12 // int fetch
        end local 11 // int rowCount
        end local 10 // int state
        end local 9 // int columnCount
        end local 8 // org.h2.result.ResultInterface result
        end local 7 // int old
        end local 6 // org.h2.command.Command command
        end local 5 // int fetchSize
        end local 4 // int maxRows
        end local 3 // int objectId
        end local 2 // int id
        80: .line 354
      StackMap locals: org.h2.server.TcpServerThread int
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            invokevirtual org.h2.value.Transfer.readInt:()I
            istore 2 /* id */
        start local 2 // int id
        81: .line 355
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.cache:Lorg/h2/util/SmallMap;
            iload 2 /* id */
            iconst_0
            invokevirtual org.h2.util.SmallMap.getObject:(IZ)Ljava/lang/Object;
            checkcast org.h2.command.Command
            astore 3 /* command */
        start local 3 // org.h2.command.Command command
        82: .line 356
            aload 0 /* this */
            aload 3 /* command */
            invokevirtual org.h2.server.TcpServerThread.setParameters:(Lorg/h2/command/Command;)V
        83: .line 357
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.clientVersion:I
            bipush 17
            if_icmplt 84
            iconst_1
            goto 85
      StackMap locals: int org.h2.command.Command
      StackMap stack:
        84: iconst_0
      StackMap locals:
      StackMap stack: int
        85: istore 4 /* supportsGeneratedKeys */
        start local 4 // boolean supportsGeneratedKeys
        86: .line 358
            iload 4 /* supportsGeneratedKeys */
            istore 5 /* writeGeneratedKeys */
        start local 5 // boolean writeGeneratedKeys
        87: .line 360
            iload 4 /* supportsGeneratedKeys */
            ifeq 117
        88: .line 361
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            invokevirtual org.h2.value.Transfer.readInt:()I
            istore 7 /* mode */
        start local 7 // int mode
        89: .line 362
            iload 7 /* mode */
            tableswitch { // 0 - 3
                    0: 90
                    1: 93
                    2: 95
                    3: 104
              default: 113
          }
        90: .line 364
      StackMap locals: org.h2.server.TcpServerThread int int org.h2.command.Command int int top int
      StackMap stack:
            iconst_0
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            astore 6 /* generatedKeysRequest */
        start local 6 // java.lang.Object generatedKeysRequest
        91: .line 365
            iconst_0
            istore 5 /* writeGeneratedKeys */
        92: .line 366
            goto 118
        end local 6 // java.lang.Object generatedKeysRequest
        93: .line 368
      StackMap locals:
      StackMap stack:
            iconst_1
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            astore 6 /* generatedKeysRequest */
        start local 6 // java.lang.Object generatedKeysRequest
        94: .line 369
            goto 118
        end local 6 // java.lang.Object generatedKeysRequest
        95: .line 371
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            invokevirtual org.h2.value.Transfer.readInt:()I
            istore 8 /* len */
        start local 8 // int len
        96: .line 372
            iload 8 /* len */
            newarray 10
            astore 9 /* keys */
        start local 9 // int[] keys
        97: .line 373
            iconst_0
            istore 10 /* i */
        start local 10 // int i
        98: goto 101
        99: .line 374
      StackMap locals: int int[] int
      StackMap stack:
            aload 9 /* keys */
            iload 10 /* i */
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            invokevirtual org.h2.value.Transfer.readInt:()I
            iastore
       100: .line 373
            iinc 10 /* i */ 1
      StackMap locals:
      StackMap stack:
       101: iload 10 /* i */
            iload 8 /* len */
            if_icmplt 99
        end local 10 // int i
       102: .line 376
            aload 9 /* keys */
            astore 6 /* generatedKeysRequest */
        start local 6 // java.lang.Object generatedKeysRequest
       103: .line 377
            goto 118
        end local 9 // int[] keys
        end local 8 // int len
        end local 6 // java.lang.Object generatedKeysRequest
       104: .line 380
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            invokevirtual org.h2.value.Transfer.readInt:()I
            istore 8 /* len */
        start local 8 // int len
       105: .line 381
            iload 8 /* len */
            anewarray java.lang.String
            astore 9 /* keys */
        start local 9 // java.lang.String[] keys
       106: .line 382
            iconst_0
            istore 10 /* i */
        start local 10 // int i
       107: goto 110
       108: .line 383
      StackMap locals: int java.lang.String[] int
      StackMap stack:
            aload 9 /* keys */
            iload 10 /* i */
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            invokevirtual org.h2.value.Transfer.readString:()Ljava/lang/String;
            aastore
       109: .line 382
            iinc 10 /* i */ 1
      StackMap locals:
      StackMap stack:
       110: iload 10 /* i */
            iload 8 /* len */
            if_icmplt 108
        end local 10 // int i
       111: .line 385
            aload 9 /* keys */
            astore 6 /* generatedKeysRequest */
        start local 6 // java.lang.Object generatedKeysRequest
       112: .line 386
            goto 118
        end local 9 // java.lang.String[] keys
        end local 8 // int len
        end local 6 // java.lang.Object generatedKeysRequest
       113: .line 389
      StackMap locals:
      StackMap stack:
            ldc 90067
       114: .line 390
            new java.lang.StringBuilder
            dup
            ldc "Unsupported generated keys' mode "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 7 /* mode */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       115: .line 389
            invokestatic org.h2.message.DbException.get:(ILjava/lang/String;)Lorg/h2/message/DbException;
            athrow
        end local 7 // int mode
        start local 6 // java.lang.Object generatedKeysRequest
       116: .line 392
      StackMap locals: org.h2.server.TcpServerThread int int org.h2.command.Command int int java.lang.Object
      StackMap stack:
            goto 118
        end local 6 // java.lang.Object generatedKeysRequest
       117: .line 393
      StackMap locals:
      StackMap stack:
            iconst_0
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            astore 6 /* generatedKeysRequest */
        start local 6 // java.lang.Object generatedKeysRequest
       118: .line 395
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.session:Lorg/h2/engine/Session;
            invokevirtual org.h2.engine.Session.getModificationId:()I
            istore 7 /* old */
        start local 7 // int old
       119: .line 397
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.session:Lorg/h2/engine/Session;
            dup
            astore 9
            monitorenter
       120: .line 398
            aload 3 /* command */
            aload 6 /* generatedKeysRequest */
            invokevirtual org.h2.command.Command.executeUpdate:(Ljava/lang/Object;)Lorg/h2/result/ResultWithGeneratedKeys;
            astore 8 /* result */
        start local 8 // org.h2.result.ResultWithGeneratedKeys result
       121: .line 397
            aload 9
            monitorexit
       122: goto 125
        end local 8 // org.h2.result.ResultWithGeneratedKeys result
      StackMap locals: org.h2.server.TcpServerThread int int org.h2.command.Command int int java.lang.Object int top org.h2.engine.Session
      StackMap stack: java.lang.Throwable
       123: aload 9
            monitorexit
       124: athrow
        start local 8 // org.h2.result.ResultWithGeneratedKeys result
       125: .line 401
      StackMap locals: org.h2.server.TcpServerThread int int org.h2.command.Command int int java.lang.Object int org.h2.result.ResultWithGeneratedKeys
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.session:Lorg/h2/engine/Session;
            invokevirtual org.h2.engine.Session.isClosed:()Z
            ifeq 129
       126: .line 402
            iconst_2
            istore 9 /* status */
        start local 9 // int status
       127: .line 403
            aload 0 /* this */
            iconst_1
            putfield org.h2.server.TcpServerThread.stop:Z
       128: .line 404
            goto 130
        end local 9 // int status
       129: .line 405
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 7 /* old */
            invokevirtual org.h2.server.TcpServerThread.getState:(I)I
            istore 9 /* status */
        start local 9 // int status
       130: .line 407
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            iload 9 /* status */
            invokevirtual org.h2.value.Transfer.writeInt:(I)Lorg/h2/value/Transfer;
            aload 8 /* result */
            invokevirtual org.h2.result.ResultWithGeneratedKeys.getUpdateCount:()I
            invokevirtual org.h2.value.Transfer.writeInt:(I)Lorg/h2/value/Transfer;
       131: .line 408
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.session:Lorg/h2/engine/Session;
            invokevirtual org.h2.engine.Session.getAutoCommit:()Z
            invokevirtual org.h2.value.Transfer.writeBoolean:(Z)Lorg/h2/value/Transfer;
            pop
       132: .line 409
            iload 5 /* writeGeneratedKeys */
            ifeq 149
       133: .line 410
            aload 8 /* result */
            invokevirtual org.h2.result.ResultWithGeneratedKeys.getGeneratedKeys:()Lorg/h2/result/ResultInterface;
            astore 10 /* generatedKeys */
        start local 10 // org.h2.result.ResultInterface generatedKeys
       134: .line 411
            aload 10 /* generatedKeys */
            invokeinterface org.h2.result.ResultInterface.getVisibleColumnCount:()I
            istore 11 /* columnCount */
        start local 11 // int columnCount
       135: .line 412
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            iload 11 /* columnCount */
            invokevirtual org.h2.value.Transfer.writeInt:(I)Lorg/h2/value/Transfer;
            pop
       136: .line 413
            aload 10 /* generatedKeys */
            invokeinterface org.h2.result.ResultInterface.getRowCount:()I
            istore 12 /* rowCount */
        start local 12 // int rowCount
       137: .line 414
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            iload 12 /* rowCount */
            invokevirtual org.h2.value.Transfer.writeInt:(I)Lorg/h2/value/Transfer;
            pop
       138: .line 415
            iconst_0
            istore 13 /* i */
        start local 13 // int i
       139: goto 142
       140: .line 416
      StackMap locals: org.h2.server.TcpServerThread int int org.h2.command.Command int int java.lang.Object int org.h2.result.ResultWithGeneratedKeys int org.h2.result.ResultInterface int int int
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            aload 10 /* generatedKeys */
            iload 13 /* i */
            invokestatic org.h2.result.ResultColumn.writeColumn:(Lorg/h2/value/Transfer;Lorg/h2/result/ResultInterface;I)V
       141: .line 415
            iinc 13 /* i */ 1
      StackMap locals:
      StackMap stack:
       142: iload 13 /* i */
            iload 11 /* columnCount */
            if_icmplt 140
        end local 13 // int i
       143: .line 418
            iconst_0
            istore 13 /* i */
        start local 13 // int i
       144: goto 147
       145: .line 419
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 10 /* generatedKeys */
            invokevirtual org.h2.server.TcpServerThread.sendRow:(Lorg/h2/result/ResultInterface;)V
       146: .line 418
            iinc 13 /* i */ 1
      StackMap locals:
      StackMap stack:
       147: iload 13 /* i */
            iload 12 /* rowCount */
            if_icmplt 145
        end local 13 // int i
       148: .line 421
            aload 10 /* generatedKeys */
            invokeinterface org.h2.result.ResultInterface.close:()V
        end local 12 // int rowCount
        end local 11 // int columnCount
        end local 10 // org.h2.result.ResultInterface generatedKeys
       149: .line 423
      StackMap locals: org.h2.server.TcpServerThread int int org.h2.command.Command int int java.lang.Object int org.h2.result.ResultWithGeneratedKeys int
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            invokevirtual org.h2.value.Transfer.flush:()V
       150: .line 424
            goto 238
        end local 9 // int status
        end local 8 // org.h2.result.ResultWithGeneratedKeys result
        end local 7 // int old
        end local 6 // java.lang.Object generatedKeysRequest
        end local 5 // boolean writeGeneratedKeys
        end local 4 // boolean supportsGeneratedKeys
        end local 3 // org.h2.command.Command command
        end local 2 // int id
       151: .line 427
      StackMap locals: org.h2.server.TcpServerThread int
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            invokevirtual org.h2.value.Transfer.readInt:()I
            istore 2 /* id */
        start local 2 // int id
       152: .line 428
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.cache:Lorg/h2/util/SmallMap;
            iload 2 /* id */
            iconst_1
            invokevirtual org.h2.util.SmallMap.getObject:(IZ)Ljava/lang/Object;
            checkcast org.h2.command.Command
            astore 3 /* command */
        start local 3 // org.h2.command.Command command
       153: .line 429
            aload 3 /* command */
            ifnull 238
       154: .line 430
            aload 3 /* command */
            invokevirtual org.h2.command.Command.close:()V
       155: .line 431
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.cache:Lorg/h2/util/SmallMap;
            iload 2 /* id */
            invokevirtual org.h2.util.SmallMap.freeObject:(I)V
       156: .line 433
            goto 238
        end local 3 // org.h2.command.Command command
        end local 2 // int id
       157: .line 436
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            invokevirtual org.h2.value.Transfer.readInt:()I
            istore 2 /* id */
        start local 2 // int id
       158: .line 437
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            invokevirtual org.h2.value.Transfer.readInt:()I
            istore 3 /* count */
        start local 3 // int count
       159: .line 438
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.cache:Lorg/h2/util/SmallMap;
            iload 2 /* id */
            iconst_0
            invokevirtual org.h2.util.SmallMap.getObject:(IZ)Ljava/lang/Object;
            checkcast org.h2.result.ResultInterface
            astore 4 /* result */
        start local 4 // org.h2.result.ResultInterface result
       160: .line 439
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            iconst_1
            invokevirtual org.h2.value.Transfer.writeInt:(I)Lorg/h2/value/Transfer;
            pop
       161: .line 440
            iconst_0
            istore 5 /* i */
        start local 5 // int i
       162: goto 165
       163: .line 441
      StackMap locals: org.h2.server.TcpServerThread int int int org.h2.result.ResultInterface int
      StackMap stack:
            aload 0 /* this */
            aload 4 /* result */
            invokevirtual org.h2.server.TcpServerThread.sendRow:(Lorg/h2/result/ResultInterface;)V
       164: .line 440
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
       165: iload 5 /* i */
            iload 3 /* count */
            if_icmplt 163
        end local 5 // int i
       166: .line 443
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            invokevirtual org.h2.value.Transfer.flush:()V
       167: .line 444
            goto 238
        end local 4 // org.h2.result.ResultInterface result
        end local 3 // int count
        end local 2 // int id
       168: .line 447
      StackMap locals: org.h2.server.TcpServerThread int
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            invokevirtual org.h2.value.Transfer.readInt:()I
            istore 2 /* id */
        start local 2 // int id
       169: .line 448
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.cache:Lorg/h2/util/SmallMap;
            iload 2 /* id */
            iconst_0
            invokevirtual org.h2.util.SmallMap.getObject:(IZ)Ljava/lang/Object;
            checkcast org.h2.result.ResultInterface
            astore 3 /* result */
        start local 3 // org.h2.result.ResultInterface result
       170: .line 449
            aload 3 /* result */
            invokeinterface org.h2.result.ResultInterface.reset:()V
       171: .line 450
            goto 238
        end local 3 // org.h2.result.ResultInterface result
        end local 2 // int id
       172: .line 453
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            invokevirtual org.h2.value.Transfer.readInt:()I
            istore 2 /* id */
        start local 2 // int id
       173: .line 454
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.cache:Lorg/h2/util/SmallMap;
            iload 2 /* id */
            iconst_1
            invokevirtual org.h2.util.SmallMap.getObject:(IZ)Ljava/lang/Object;
            checkcast org.h2.result.ResultInterface
            astore 3 /* result */
        start local 3 // org.h2.result.ResultInterface result
       174: .line 455
            aload 3 /* result */
            ifnull 238
       175: .line 456
            aload 3 /* result */
            invokeinterface org.h2.result.ResultInterface.close:()V
       176: .line 457
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.cache:Lorg/h2/util/SmallMap;
            iload 2 /* id */
            invokevirtual org.h2.util.SmallMap.freeObject:(I)V
       177: .line 459
            goto 238
        end local 3 // org.h2.result.ResultInterface result
        end local 2 // int id
       178: .line 462
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            invokevirtual org.h2.value.Transfer.readInt:()I
            istore 2 /* oldId */
        start local 2 // int oldId
       179: .line 463
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            invokevirtual org.h2.value.Transfer.readInt:()I
            istore 3 /* newId */
        start local 3 // int newId
       180: .line 464
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.cache:Lorg/h2/util/SmallMap;
            iload 2 /* oldId */
            iconst_0
            invokevirtual org.h2.util.SmallMap.getObject:(IZ)Ljava/lang/Object;
            astore 4 /* obj */
        start local 4 // java.lang.Object obj
       181: .line 465
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.cache:Lorg/h2/util/SmallMap;
            iload 2 /* oldId */
            invokevirtual org.h2.util.SmallMap.freeObject:(I)V
       182: .line 466
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.cache:Lorg/h2/util/SmallMap;
            iload 3 /* newId */
            aload 4 /* obj */
            invokevirtual org.h2.util.SmallMap.addObject:(ILjava/lang/Object;)I
            pop
       183: .line 467
            goto 238
        end local 4 // java.lang.Object obj
        end local 3 // int newId
        end local 2 // int oldId
       184: .line 470
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            invokevirtual org.h2.value.Transfer.readString:()Ljava/lang/String;
            putfield org.h2.server.TcpServerThread.sessionId:Ljava/lang/String;
       185: .line 471
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            iconst_1
            invokevirtual org.h2.value.Transfer.writeInt:(I)Lorg/h2/value/Transfer;
            pop
       186: .line 472
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.clientVersion:I
            bipush 15
            if_icmplt 188
       187: .line 473
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.session:Lorg/h2/engine/Session;
            invokevirtual org.h2.engine.Session.getAutoCommit:()Z
            invokevirtual org.h2.value.Transfer.writeBoolean:(Z)Lorg/h2/value/Transfer;
            pop
       188: .line 475
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            invokevirtual org.h2.value.Transfer.flush:()V
       189: .line 476
            goto 238
       190: .line 479
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            invokevirtual org.h2.value.Transfer.readBoolean:()Z
            istore 2 /* autoCommit */
        start local 2 // boolean autoCommit
       191: .line 480
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.session:Lorg/h2/engine/Session;
            iload 2 /* autoCommit */
            invokevirtual org.h2.engine.Session.setAutoCommit:(Z)V
       192: .line 481
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            iconst_1
            invokevirtual org.h2.value.Transfer.writeInt:(I)Lorg/h2/value/Transfer;
            invokevirtual org.h2.value.Transfer.flush:()V
       193: .line 482
            goto 238
        end local 2 // boolean autoCommit
       194: .line 485
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            iconst_1
            invokevirtual org.h2.value.Transfer.writeInt:(I)Lorg/h2/value/Transfer;
       195: .line 486
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.session:Lorg/h2/engine/Session;
            invokevirtual org.h2.engine.Session.hasPendingTransaction:()Z
            ifeq 196
            iconst_1
            goto 197
      StackMap locals:
      StackMap stack: org.h2.value.Transfer
       196: iconst_0
      StackMap locals: org.h2.server.TcpServerThread int
      StackMap stack: org.h2.value.Transfer int
       197: invokevirtual org.h2.value.Transfer.writeInt:(I)Lorg/h2/value/Transfer;
            invokevirtual org.h2.value.Transfer.flush:()V
       198: .line 487
            goto 238
       199: .line 490
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            invokevirtual org.h2.value.Transfer.readLong:()J
            lstore 2 /* lobId */
        start local 2 // long lobId
       200: .line 494
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.clientVersion:I
            bipush 11
            if_icmplt 212
       201: .line 495
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.clientVersion:I
            bipush 12
            if_icmplt 205
       202: .line 496
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            invokevirtual org.h2.value.Transfer.readBytes:()[B
            astore 4 /* hmac */
        start local 4 // byte[] hmac
       203: .line 497
            iconst_1
            istore 6 /* verifyMac */
        start local 6 // boolean verifyMac
       204: .line 498
            goto 207
        end local 6 // boolean verifyMac
        end local 4 // byte[] hmac
       205: .line 499
      StackMap locals: long
      StackMap stack:
            aconst_null
            astore 4 /* hmac */
        start local 4 // byte[] hmac
       206: .line 500
            iconst_0
            istore 6 /* verifyMac */
        start local 6 // boolean verifyMac
       207: .line 502
      StackMap locals: org.h2.server.TcpServerThread int long byte[] top int
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.lobs:Lorg/h2/util/SmallLRUCache;
            lload 2 /* lobId */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokevirtual org.h2.util.SmallLRUCache.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.h2.server.TcpServerThread$CachedInputStream
            astore 5 /* in */
        start local 5 // org.h2.server.TcpServerThread$CachedInputStream in
       208: .line 503
            aload 5 /* in */
            ifnonnull 215
            iload 6 /* verifyMac */
            ifeq 215
       209: .line 504
            new org.h2.server.TcpServerThread$CachedInputStream
            dup
            aconst_null
            invokespecial org.h2.server.TcpServerThread$CachedInputStream.<init>:(Ljava/io/InputStream;)V
            astore 5 /* in */
       210: .line 505
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.lobs:Lorg/h2/util/SmallLRUCache;
            lload 2 /* lobId */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aload 5 /* in */
            invokevirtual org.h2.util.SmallLRUCache.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
       211: .line 507
            goto 215
        end local 6 // boolean verifyMac
        end local 5 // org.h2.server.TcpServerThread$CachedInputStream in
        end local 4 // byte[] hmac
       212: .line 508
      StackMap locals: org.h2.server.TcpServerThread int long
      StackMap stack:
            iconst_0
            istore 6 /* verifyMac */
        start local 6 // boolean verifyMac
       213: .line 509
            aconst_null
            astore 4 /* hmac */
        start local 4 // byte[] hmac
       214: .line 510
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.lobs:Lorg/h2/util/SmallLRUCache;
            lload 2 /* lobId */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokevirtual org.h2.util.SmallLRUCache.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.h2.server.TcpServerThread$CachedInputStream
            astore 5 /* in */
        start local 5 // org.h2.server.TcpServerThread$CachedInputStream in
       215: .line 512
      StackMap locals: byte[] org.h2.server.TcpServerThread$CachedInputStream int
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            invokevirtual org.h2.value.Transfer.readLong:()J
            lstore 7 /* offset */
        start local 7 // long offset
       216: .line 513
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            invokevirtual org.h2.value.Transfer.readInt:()I
            istore 9 /* length */
        start local 9 // int length
       217: .line 514
            iload 6 /* verifyMac */
            ifeq 219
       218: .line 515
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            aload 4 /* hmac */
            lload 2 /* lobId */
            invokevirtual org.h2.value.Transfer.verifyLobMac:([BJ)V
       219: .line 517
      StackMap locals: long int
      StackMap stack:
            aload 5 /* in */
            ifnonnull 221
       220: .line 518
            ldc 90007
            invokestatic org.h2.message.DbException.get:(I)Lorg/h2/message/DbException;
            athrow
       221: .line 520
      StackMap locals:
      StackMap stack:
            aload 5 /* in */
            invokevirtual org.h2.server.TcpServerThread$CachedInputStream.getPos:()J
            lload 7 /* offset */
            lcmp
            ifeq 228
       222: .line 521
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.session:Lorg/h2/engine/Session;
            invokevirtual org.h2.engine.Session.getDataHandler:()Lorg/h2/store/DataHandler;
            invokeinterface org.h2.store.DataHandler.getLobStorage:()Lorg/h2/store/LobStorageInterface;
            astore 10 /* lobStorage */
        start local 10 // org.h2.store.LobStorageInterface lobStorage
       223: .line 523
            bipush 15
            aconst_null
            iconst_m1
            lload 2 /* lobId */
            aload 4 /* hmac */
            ldc -1
            invokestatic org.h2.value.ValueLobDb.create:(ILorg/h2/store/DataHandler;IJ[BJ)Lorg/h2/value/ValueLobDb;
            astore 11 /* lob */
        start local 11 // org.h2.value.ValueLobDb lob
       224: .line 524
            aload 10 /* lobStorage */
            aload 11 /* lob */
            aload 4 /* hmac */
            ldc -1
            invokeinterface org.h2.store.LobStorageInterface.getInputStream:(Lorg/h2/value/ValueLobDb;[BJ)Ljava/io/InputStream;
            astore 12 /* lobIn */
        start local 12 // java.io.InputStream lobIn
       225: .line 525
            new org.h2.server.TcpServerThread$CachedInputStream
            dup
            aload 12 /* lobIn */
            invokespecial org.h2.server.TcpServerThread$CachedInputStream.<init>:(Ljava/io/InputStream;)V
            astore 5 /* in */
       226: .line 526
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.lobs:Lorg/h2/util/SmallLRUCache;
            lload 2 /* lobId */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aload 5 /* in */
            invokevirtual org.h2.util.SmallLRUCache.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
       227: .line 527
            aload 12 /* lobIn */
            lload 7 /* offset */
            invokevirtual java.io.InputStream.skip:(J)J
            pop2
        end local 12 // java.io.InputStream lobIn
        end local 11 // org.h2.value.ValueLobDb lob
        end local 10 // org.h2.store.LobStorageInterface lobStorage
       228: .line 530
      StackMap locals:
      StackMap stack:
            ldc 65536
            iload 9 /* length */
            invokestatic java.lang.Math.min:(II)I
            istore 9 /* length */
       229: .line 531
            iload 9 /* length */
            newarray 8
            astore 10 /* buff */
        start local 10 // byte[] buff
       230: .line 532
            aload 5 /* in */
            aload 10 /* buff */
            iload 9 /* length */
            invokestatic org.h2.util.IOUtils.readFully:(Ljava/io/InputStream;[BI)I
            istore 9 /* length */
       231: .line 533
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            iconst_1
            invokevirtual org.h2.value.Transfer.writeInt:(I)Lorg/h2/value/Transfer;
            pop
       232: .line 534
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            iload 9 /* length */
            invokevirtual org.h2.value.Transfer.writeInt:(I)Lorg/h2/value/Transfer;
            pop
       233: .line 535
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            aload 10 /* buff */
            iconst_0
            iload 9 /* length */
            invokevirtual org.h2.value.Transfer.writeBytes:([BII)Lorg/h2/value/Transfer;
            pop
       234: .line 536
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            invokevirtual org.h2.value.Transfer.flush:()V
       235: .line 537
            goto 238
        end local 10 // byte[] buff
        end local 9 // int length
        end local 7 // long offset
        end local 6 // boolean verifyMac
        end local 5 // org.h2.server.TcpServerThread$CachedInputStream in
        end local 4 // byte[] hmac
        end local 2 // long lobId
       236: .line 540
      StackMap locals: org.h2.server.TcpServerThread int
      StackMap stack:
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "Unknown operation: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* operation */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.h2.server.TcpServerThread.trace:(Ljava/lang/String;)V
       237: .line 541
            aload 0 /* this */
            invokevirtual org.h2.server.TcpServerThread.close:()V
       238: .line 543
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int operation
        end local 0 // org.h2.server.TcpServerThread this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0  239     0                   this  Lorg/h2/server/TcpServerThread;
            1  239     1              operation  I
            3   22     2                     id  I
            4   22     3                    sql  Ljava/lang/String;
            5   22     4                    old  I
            6   22     5                command  Lorg/h2/command/Command;
            7   22     6               readonly  Z
            9   22     7                isQuery  Z
           14   22     8                 params  Ljava/util/ArrayList<+Lorg/h2/expression/ParameterInterface;>;
           18   19     9                      p  Lorg/h2/expression/ParameterInterface;
           30   33     2                    old  I
           34   48     2                     id  I
           35   48     3               objectId  I
           36   48     4                command  Lorg/h2/command/Command;
           37   48     5                 result  Lorg/h2/result/ResultInterface;
           39   48     6            columnCount  I
           42   46     7                      i  I
           49   80     2                     id  I
           50   80     3               objectId  I
           51   80     4                maxRows  I
           52   80     5              fetchSize  I
           53   80     6                command  Lorg/h2/command/Command;
           55   80     7                    old  I
           57   59     8                 result  Lorg/h2/result/ResultInterface;
           61   80     8                 result  Lorg/h2/result/ResultInterface;
           63   80     9            columnCount  I
           64   80    10                  state  I
           66   80    11               rowCount  I
           68   72    12                      i  I
           73   80    12                  fetch  I
           74   78    13                      i  I
           81  151     2                     id  I
           82  151     3                command  Lorg/h2/command/Command;
           86  151     4  supportsGeneratedKeys  Z
           87  151     5     writeGeneratedKeys  Z
           91   93     6   generatedKeysRequest  Ljava/lang/Object;
           94   95     6   generatedKeysRequest  Ljava/lang/Object;
          103  104     6   generatedKeysRequest  Ljava/lang/Object;
          112  113     6   generatedKeysRequest  Ljava/lang/Object;
          116  117     6   generatedKeysRequest  Ljava/lang/Object;
          118  151     6   generatedKeysRequest  Ljava/lang/Object;
           89  116     7                   mode  I
           96  104     8                    len  I
           97  104     9                   keys  [I
           98  102    10                      i  I
          105  113     8                    len  I
          106  113     9                   keys  [Ljava/lang/String;
          107  111    10                      i  I
          119  151     7                    old  I
          121  123     8                 result  Lorg/h2/result/ResultWithGeneratedKeys;
          125  151     8                 result  Lorg/h2/result/ResultWithGeneratedKeys;
          127  129     9                 status  I
          130  151     9                 status  I
          134  149    10          generatedKeys  Lorg/h2/result/ResultInterface;
          135  149    11            columnCount  I
          137  149    12               rowCount  I
          139  143    13                      i  I
          144  148    13                      i  I
          152  157     2                     id  I
          153  157     3                command  Lorg/h2/command/Command;
          158  168     2                     id  I
          159  168     3                  count  I
          160  168     4                 result  Lorg/h2/result/ResultInterface;
          162  166     5                      i  I
          169  172     2                     id  I
          170  172     3                 result  Lorg/h2/result/ResultInterface;
          173  178     2                     id  I
          174  178     3                 result  Lorg/h2/result/ResultInterface;
          179  184     2                  oldId  I
          180  184     3                  newId  I
          181  184     4                    obj  Ljava/lang/Object;
          191  194     2             autoCommit  Z
          200  236     2                  lobId  J
          203  205     4                   hmac  [B
          206  212     4                   hmac  [B
          214  236     4                   hmac  [B
          208  212     5                     in  Lorg/h2/server/TcpServerThread$CachedInputStream;
          215  236     5                     in  Lorg/h2/server/TcpServerThread$CachedInputStream;
          204  205     6              verifyMac  Z
          207  212     6              verifyMac  Z
          213  236     6              verifyMac  Z
          216  236     7                 offset  J
          217  236     9                 length  I
          223  228    10             lobStorage  Lorg/h2/store/LobStorageInterface;
          224  228    11                    lob  Lorg/h2/value/ValueLobDb;
          225  228    12                  lobIn  Ljava/io/InputStream;
          230  236    10                   buff  [B
      Exception table:
        from    to  target  type
          56    58      59  any
          59    60      59  any
         120   122     123  any
         123   124     123  any
    Exceptions:
      throws java.io.IOException

  private int getState(int);
    descriptor: (I)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.h2.server.TcpServerThread this
        start local 1 // int oldModificationId
         0: .line 546
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.session:Lorg/h2/engine/Session;
            ifnonnull 2
         1: .line 547
            iconst_2
            ireturn
         2: .line 549
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.session:Lorg/h2/engine/Session;
            invokevirtual org.h2.engine.Session.getModificationId:()I
            iload 1 /* oldModificationId */
            if_icmpne 4
         3: .line 550
            iconst_1
            ireturn
         4: .line 552
      StackMap locals:
      StackMap stack:
            iconst_3
            ireturn
        end local 1 // int oldModificationId
        end local 0 // org.h2.server.TcpServerThread this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    5     0               this  Lorg/h2/server/TcpServerThread;
            0    5     1  oldModificationId  I
    MethodParameters:
                   Name  Flags
      oldModificationId  

  private void sendRow(org.h2.result.ResultInterface);
    descriptor: (Lorg/h2/result/ResultInterface;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.h2.server.TcpServerThread this
        start local 1 // org.h2.result.ResultInterface result
         0: .line 556
            aload 1 /* result */
            invokeinterface org.h2.result.ResultInterface.next:()Z
            ifeq 12
         1: .line 557
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            iconst_1
            invokevirtual org.h2.value.Transfer.writeBoolean:(Z)Lorg/h2/value/Transfer;
            pop
         2: .line 558
            aload 1 /* result */
            invokeinterface org.h2.result.ResultInterface.currentRow:()[Lorg/h2/value/Value;
            astore 2 /* v */
        start local 2 // org.h2.value.Value[] v
         3: .line 559
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         4: goto 10
         5: .line 560
      StackMap locals: org.h2.value.Value[] int
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.clientVersion:I
            bipush 12
            if_icmplt 8
         6: .line 561
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            aload 2 /* v */
            iload 3 /* i */
            aaload
            invokevirtual org.h2.value.Transfer.writeValue:(Lorg/h2/value/Value;)V
         7: .line 562
            goto 9
         8: .line 563
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* v */
            iload 3 /* i */
            aaload
            invokevirtual org.h2.server.TcpServerThread.writeValue:(Lorg/h2/value/Value;)V
         9: .line 559
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 3 /* i */
            aload 1 /* result */
            invokeinterface org.h2.result.ResultInterface.getVisibleColumnCount:()I
            if_icmplt 5
        end local 3 // int i
        end local 2 // org.h2.value.Value[] v
        11: .line 566
            goto 13
        12: .line 567
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            iconst_0
            invokevirtual org.h2.value.Transfer.writeBoolean:(Z)Lorg/h2/value/Transfer;
            pop
        13: .line 569
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.h2.result.ResultInterface result
        end local 0 // org.h2.server.TcpServerThread this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   14     0    this  Lorg/h2/server/TcpServerThread;
            0   14     1  result  Lorg/h2/result/ResultInterface;
            3   11     2       v  [Lorg/h2/value/Value;
            4   11     3       i  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      result  

  private void writeValue(org.h2.value.Value);
    descriptor: (Lorg/h2/value/Value;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // org.h2.server.TcpServerThread this
        start local 1 // org.h2.value.Value v
         0: .line 572
            aload 1 /* v */
            invokevirtual org.h2.value.Value.getValueType:()I
            invokestatic org.h2.value.DataType.isLargeObject:(I)Z
            ifeq 6
         1: .line 573
            aload 1 /* v */
            instanceof org.h2.value.ValueLobDb
            ifeq 6
         2: .line 574
            aload 1 /* v */
            checkcast org.h2.value.ValueLobDb
            astore 2 /* lob */
        start local 2 // org.h2.value.ValueLobDb lob
         3: .line 575
            aload 2 /* lob */
            invokevirtual org.h2.value.ValueLobDb.isStored:()Z
            ifeq 6
         4: .line 576
            aload 2 /* lob */
            invokevirtual org.h2.value.ValueLobDb.getLobId:()J
            lstore 3 /* id */
        start local 3 // long id
         5: .line 577
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.lobs:Lorg/h2/util/SmallLRUCache;
            lload 3 /* id */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            new org.h2.server.TcpServerThread$CachedInputStream
            dup
            aconst_null
            invokespecial org.h2.server.TcpServerThread$CachedInputStream.<init>:(Ljava/io/InputStream;)V
            invokevirtual org.h2.util.SmallLRUCache.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 3 // long id
        end local 2 // org.h2.value.ValueLobDb lob
         6: .line 581
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.transfer:Lorg/h2/value/Transfer;
            aload 1 /* v */
            invokevirtual org.h2.value.Transfer.writeValue:(Lorg/h2/value/Value;)V
         7: .line 582
            return
        end local 1 // org.h2.value.Value v
        end local 0 // org.h2.server.TcpServerThread this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lorg/h2/server/TcpServerThread;
            0    8     1     v  Lorg/h2/value/Value;
            3    6     2   lob  Lorg/h2/value/ValueLobDb;
            5    6     3    id  J
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      v     

  void setThread(java.lang.Thread);
    descriptor: (Ljava/lang/Thread;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.h2.server.TcpServerThread this
        start local 1 // java.lang.Thread thread
         0: .line 585
            aload 0 /* this */
            aload 1 /* thread */
            putfield org.h2.server.TcpServerThread.thread:Ljava/lang/Thread;
         1: .line 586
            return
        end local 1 // java.lang.Thread thread
        end local 0 // org.h2.server.TcpServerThread this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/h2/server/TcpServerThread;
            0    2     1  thread  Ljava/lang/Thread;
    MethodParameters:
        Name  Flags
      thread  

  java.lang.Thread getThread();
    descriptor: ()Ljava/lang/Thread;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.server.TcpServerThread this
         0: .line 589
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.thread:Ljava/lang/Thread;
            areturn
        end local 0 // org.h2.server.TcpServerThread this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/server/TcpServerThread;

  void cancelStatement(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)V
    flags: (0x0000) 
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.h2.server.TcpServerThread this
        start local 1 // java.lang.String targetSessionId
        start local 2 // int statementId
         0: .line 599
            aload 1 /* targetSessionId */
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.sessionId:Ljava/lang/String;
            invokestatic java.util.Objects.equals:(Ljava/lang/Object;Ljava/lang/Object;)Z
            ifeq 3
         1: .line 600
            aload 0 /* this */
            getfield org.h2.server.TcpServerThread.cache:Lorg/h2/util/SmallMap;
            iload 2 /* statementId */
            iconst_0
            invokevirtual org.h2.util.SmallMap.getObject:(IZ)Ljava/lang/Object;
            checkcast org.h2.command.Command
            astore 3 /* cmd */
        start local 3 // org.h2.command.Command cmd
         2: .line 601
            aload 3 /* cmd */
            invokevirtual org.h2.command.Command.cancel:()V
        end local 3 // org.h2.command.Command cmd
         3: .line 603
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int statementId
        end local 1 // java.lang.String targetSessionId
        end local 0 // org.h2.server.TcpServerThread this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    4     0             this  Lorg/h2/server/TcpServerThread;
            0    4     1  targetSessionId  Ljava/lang/String;
            0    4     2      statementId  I
            2    3     3              cmd  Lorg/h2/command/Command;
    MethodParameters:
                 Name  Flags
      targetSessionId  
      statementId      
}
SourceFile: "TcpServerThread.java"
NestMembers:
  org.h2.server.TcpServerThread$CachedInputStream
InnerClasses:
  CachedInputStream = org.h2.server.TcpServerThread$CachedInputStream of org.h2.server.TcpServerThread