class org.hsqldb.test.TestBench$ClientThreadProcedure extends java.lang.Thread
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.hsqldb.test.TestBench$ClientThreadProcedure
  super_class: java.lang.Thread
{
  int ntrans;
    descriptor: I
    flags: (0x0000) 

  java.sql.Connection Conn;
    descriptor: Ljava/sql/Connection;
    flags: (0x0000) 

  java.sql.CallableStatement pstmt1;
    descriptor: Ljava/sql/CallableStatement;
    flags: (0x0000) 

  final org.hsqldb.test.TestBench this$0;
    descriptor: Lorg/hsqldb/test/TestBench;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  public void <init>(org.hsqldb.test.TestBench, int, java.lang.String, java.lang.String, java.lang.String, int);
    descriptor: (Lorg/hsqldb/test/TestBench;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=8, args_size=7
        start local 0 // org.hsqldb.test.TestBench$ClientThreadProcedure this
        start local 2 // int number_of_txns
        start local 3 // java.lang.String url
        start local 4 // java.lang.String user
        start local 5 // java.lang.String password
        start local 6 // int transactionMode
         0: .line 1182
            aload 0 /* this */
            aload 1
            putfield org.hsqldb.test.TestBench$ClientThreadProcedure.this$0:Lorg/hsqldb/test/TestBench;
         1: .line 1180
            aload 0 /* this */
            invokespecial java.lang.Thread.<init>:()V
         2: .line 1176
            aload 0 /* this */
            iconst_0
            putfield org.hsqldb.test.TestBench$ClientThreadProcedure.ntrans:I
         3: .line 1178
            aload 0 /* this */
            aconst_null
            putfield org.hsqldb.test.TestBench$ClientThreadProcedure.pstmt1:Ljava/sql/CallableStatement;
         4: .line 1184
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            iload 2 /* number_of_txns */
            invokevirtual java.io.PrintStream.println:(I)V
         5: .line 1186
            aload 0 /* this */
            iload 2 /* number_of_txns */
            putfield org.hsqldb.test.TestBench$ClientThreadProcedure.ntrans:I
         6: .line 1187
            aload 0 /* this */
            aload 3 /* url */
            aload 4 /* user */
            aload 5 /* password */
            invokestatic org.hsqldb.test.TestBench.connect:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/Connection;
            putfield org.hsqldb.test.TestBench$ClientThreadProcedure.Conn:Ljava/sql/Connection;
         7: .line 1189
            aload 0 /* this */
            getfield org.hsqldb.test.TestBench$ClientThreadProcedure.Conn:Ljava/sql/Connection;
            ifnonnull 9
         8: .line 1190
            return
         9: .line 1194
      StackMap locals: org.hsqldb.test.TestBench$ClientThreadProcedure org.hsqldb.test.TestBench int java.lang.String java.lang.String java.lang.String int
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.test.TestBench$ClientThreadProcedure.Conn:Ljava/sql/Connection;
            iconst_0
            invokeinterface java.sql.Connection.setAutoCommit:(Z)V
        10: .line 1195
            aload 0 /* this */
            getfield org.hsqldb.test.TestBench$ClientThreadProcedure.Conn:Ljava/sql/Connection;
            iload 6 /* transactionMode */
            invokeinterface java.sql.Connection.setTransactionIsolation:(I)V
        11: .line 1196
            aload 0 /* this */
            invokevirtual org.hsqldb.test.TestBench$ClientThreadProcedure.prepareStatements:()V
        12: .line 1197
            goto 16
      StackMap locals:
      StackMap stack: java.lang.Exception
        13: astore 7 /* E */
        start local 7 // java.lang.Exception E
        14: .line 1198
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            aload 7 /* E */
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        15: .line 1199
            aload 7 /* E */
            invokevirtual java.lang.Exception.printStackTrace:()V
        end local 7 // java.lang.Exception E
        16: .line 1201
      StackMap locals:
      StackMap stack:
            return
        end local 6 // int transactionMode
        end local 5 // java.lang.String password
        end local 4 // java.lang.String user
        end local 3 // java.lang.String url
        end local 2 // int number_of_txns
        end local 0 // org.hsqldb.test.TestBench$ClientThreadProcedure this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   17     0             this  Lorg/hsqldb/test/TestBench$ClientThreadProcedure;
            0   17     2   number_of_txns  I
            0   17     3              url  Ljava/lang/String;
            0   17     4             user  Ljava/lang/String;
            0   17     5         password  Ljava/lang/String;
            0   17     6  transactionMode  I
           14   16     7                E  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           9    12      13  Class java.lang.Exception
    MethodParameters:
                 Name  Flags
      this$0           final
      number_of_txns   
      url              
      user             
      password         
      transactionMode  

  void prepareStatements();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.hsqldb.test.TestBench$ClientThreadProcedure this
         0: .line 1207
            ldc "CALL UPDATE_PROC(?, ?, ?, ?, ?)"
            astore 1 /* Query */
        start local 1 // java.lang.String Query
         1: .line 1208
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hsqldb.test.TestBench$ClientThreadProcedure.Conn:Ljava/sql/Connection;
            aload 1 /* Query */
            invokeinterface java.sql.Connection.prepareCall:(Ljava/lang/String;)Ljava/sql/CallableStatement;
            putfield org.hsqldb.test.TestBench$ClientThreadProcedure.pstmt1:Ljava/sql/CallableStatement;
         2: .line 1209
            return
        end local 1 // java.lang.String Query
        end local 0 // org.hsqldb.test.TestBench$ClientThreadProcedure this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lorg/hsqldb/test/TestBench$ClientThreadProcedure;
            1    3     1  Query  Ljava/lang/String;
    Exceptions:
      throws java.sql.SQLException

  public void run();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=1
        start local 0 // org.hsqldb.test.TestBench$ClientThreadProcedure this
         0: .line 1213
            aload 0 /* this */
            getfield org.hsqldb.test.TestBench$ClientThreadProcedure.ntrans:I
            istore 1 /* count */
        start local 1 // int count
         1: .line 1215
            goto 8
         2: .line 1216
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.test.TestBench$ClientThreadProcedure.this$0:Lorg/hsqldb/test/TestBench;
            iconst_2
            invokevirtual org.hsqldb.test.TestBench.getRandomID:(I)I
            istore 2 /* account */
        start local 2 // int account
         3: .line 1217
            iload 2 /* account */
            aload 0 /* this */
            getfield org.hsqldb.test.TestBench$ClientThreadProcedure.this$0:Lorg/hsqldb/test/TestBench;
            getfield org.hsqldb.test.TestBench.naccounts:I
            idiv
            istore 3 /* branch */
        start local 3 // int branch
         4: .line 1218
            aload 0 /* this */
            getfield org.hsqldb.test.TestBench$ClientThreadProcedure.this$0:Lorg/hsqldb/test/TestBench;
            iconst_0
            invokevirtual org.hsqldb.test.TestBench.getRandomID:(I)I
            istore 4 /* teller */
        start local 4 // int teller
         5: .line 1219
            sipush -1000
            sipush 1000
            invokestatic org.hsqldb.test.TestBench.getRandomInt:(II)I
            istore 5 /* delta */
        start local 5 // int delta
         6: .line 1221
            aload 0 /* this */
            iload 3 /* branch */
            iload 4 /* teller */
            iload 2 /* account */
            iload 5 /* delta */
            invokevirtual org.hsqldb.test.TestBench$ClientThreadProcedure.doOne:(IIII)I
            pop
         7: .line 1222
            aload 0 /* this */
            getfield org.hsqldb.test.TestBench$ClientThreadProcedure.this$0:Lorg/hsqldb/test/TestBench;
            invokevirtual org.hsqldb.test.TestBench.incrementTransactionCount:()V
        end local 5 // int delta
        end local 4 // int teller
        end local 3 // int branch
        end local 2 // int account
         8: .line 1215
      StackMap locals:
      StackMap stack:
            iload 1 /* count */
            iinc 1 /* count */ -1
            ifgt 2
         9: .line 1226
            aload 0 /* this */
            getfield org.hsqldb.test.TestBench$ClientThreadProcedure.pstmt1:Ljava/sql/CallableStatement;
            ifnull 15
        10: .line 1227
            aload 0 /* this */
            getfield org.hsqldb.test.TestBench$ClientThreadProcedure.pstmt1:Ljava/sql/CallableStatement;
            invokeinterface java.sql.CallableStatement.close:()V
        11: .line 1229
            goto 15
      StackMap locals:
      StackMap stack: java.lang.Exception
        12: astore 2 /* E */
        start local 2 // java.lang.Exception E
        13: .line 1230
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            aload 2 /* E */
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        14: .line 1231
            aload 2 /* E */
            invokevirtual java.lang.Exception.printStackTrace:()V
        end local 2 // java.lang.Exception E
        15: .line 1234
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.test.TestBench$ClientThreadProcedure.Conn:Ljava/sql/Connection;
            invokestatic org.hsqldb.test.TestBench.connectClose:(Ljava/sql/Connection;)V
        16: .line 1236
            aload 0 /* this */
            aconst_null
            putfield org.hsqldb.test.TestBench$ClientThreadProcedure.Conn:Ljava/sql/Connection;
        17: .line 1237
            return
        end local 1 // int count
        end local 0 // org.hsqldb.test.TestBench$ClientThreadProcedure this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   18     0     this  Lorg/hsqldb/test/TestBench$ClientThreadProcedure;
            1   18     1    count  I
            3    8     2  account  I
            4    8     3   branch  I
            5    8     4   teller  I
            6    8     5    delta  I
           13   15     2        E  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           9    11      12  Class java.lang.Exception

  int doOne(int, int, int, int);
    descriptor: (IIII)I
    flags: (0x0000) 
    Code:
      stack=4, locals=7, args_size=5
        start local 0 // org.hsqldb.test.TestBench$ClientThreadProcedure this
        start local 1 // int bid
        start local 2 // int tid
        start local 3 // int aid
        start local 4 // int delta
         0: .line 1244
            iconst_0
            istore 5 /* aBalance */
        start local 5 // int aBalance
         1: .line 1246
            aload 0 /* this */
            getfield org.hsqldb.test.TestBench$ClientThreadProcedure.Conn:Ljava/sql/Connection;
            ifnonnull 4
         2: .line 1247
            aload 0 /* this */
            getfield org.hsqldb.test.TestBench$ClientThreadProcedure.this$0:Lorg/hsqldb/test/TestBench;
            invokevirtual org.hsqldb.test.TestBench.incrementFailedTransactionCount:()V
         3: .line 1249
            iconst_0
            ireturn
         4: .line 1253
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.test.TestBench$ClientThreadProcedure.pstmt1:Ljava/sql/CallableStatement;
            iconst_1
            iload 3 /* aid */
            invokeinterface java.sql.CallableStatement.setInt:(II)V
         5: .line 1254
            aload 0 /* this */
            getfield org.hsqldb.test.TestBench$ClientThreadProcedure.pstmt1:Ljava/sql/CallableStatement;
            iconst_2
            iload 2 /* tid */
            invokeinterface java.sql.CallableStatement.setInt:(II)V
         6: .line 1255
            aload 0 /* this */
            getfield org.hsqldb.test.TestBench$ClientThreadProcedure.pstmt1:Ljava/sql/CallableStatement;
            iconst_3
            iload 1 /* bid */
            invokeinterface java.sql.CallableStatement.setInt:(II)V
         7: .line 1256
            aload 0 /* this */
            getfield org.hsqldb.test.TestBench$ClientThreadProcedure.pstmt1:Ljava/sql/CallableStatement;
            iconst_4
            iload 4 /* delta */
            invokeinterface java.sql.CallableStatement.setInt:(II)V
         8: .line 1257
            aload 0 /* this */
            getfield org.hsqldb.test.TestBench$ClientThreadProcedure.pstmt1:Ljava/sql/CallableStatement;
            invokeinterface java.sql.CallableStatement.execute:()Z
            pop
         9: .line 1258
            aload 0 /* this */
            getfield org.hsqldb.test.TestBench$ClientThreadProcedure.pstmt1:Ljava/sql/CallableStatement;
            invokeinterface java.sql.CallableStatement.getUpdateCount:()I
            pop
        10: .line 1260
            aload 0 /* this */
            getfield org.hsqldb.test.TestBench$ClientThreadProcedure.pstmt1:Ljava/sql/CallableStatement;
            invokeinterface java.sql.CallableStatement.getMoreResults:()Z
            ifeq 16
        11: .line 1261
            aload 0 /* this */
            getfield org.hsqldb.test.TestBench$ClientThreadProcedure.pstmt1:Ljava/sql/CallableStatement;
            invokeinterface java.sql.CallableStatement.getResultSet:()Ljava/sql/ResultSet;
            astore 6 /* rs */
        start local 6 // java.sql.ResultSet rs
        12: .line 1263
            goto 14
        13: .line 1264
      StackMap locals: java.sql.ResultSet
      StackMap stack:
            aload 6 /* rs */
            iconst_1
            invokeinterface java.sql.ResultSet.getInt:(I)I
            istore 5 /* aBalance */
        14: .line 1263
      StackMap locals:
      StackMap stack:
            aload 6 /* rs */
            invokeinterface java.sql.ResultSet.next:()Z
            ifne 13
        15: .line 1267
            aload 6 /* rs */
            invokeinterface java.sql.ResultSet.close:()V
        end local 6 // java.sql.ResultSet rs
        16: .line 1270
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.test.TestBench$ClientThreadProcedure.pstmt1:Ljava/sql/CallableStatement;
            invokeinterface java.sql.CallableStatement.clearWarnings:()V
        17: .line 1271
            aload 0 /* this */
            getfield org.hsqldb.test.TestBench$ClientThreadProcedure.Conn:Ljava/sql/Connection;
            invokeinterface java.sql.Connection.commit:()V
        18: .line 1273
            iload 5 /* aBalance */
        19: ireturn
        20: .line 1274
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 6 /* E */
        start local 6 // java.lang.Exception E
        21: .line 1275
            aload 0 /* this */
            getfield org.hsqldb.test.TestBench$ClientThreadProcedure.this$0:Lorg/hsqldb/test/TestBench;
            getfield org.hsqldb.test.TestBench.verbose:Z
            ifeq 26
        22: .line 1276
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "Transaction failed: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        23: .line 1277
            aload 6 /* E */
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        24: .line 1276
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        25: .line 1278
            aload 6 /* E */
            invokevirtual java.lang.Exception.printStackTrace:()V
        26: .line 1281
      StackMap locals: java.lang.Exception
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.test.TestBench$ClientThreadProcedure.this$0:Lorg/hsqldb/test/TestBench;
            invokevirtual org.hsqldb.test.TestBench.incrementFailedTransactionCount:()V
        27: .line 1284
            aload 0 /* this */
            getfield org.hsqldb.test.TestBench$ClientThreadProcedure.Conn:Ljava/sql/Connection;
            invokeinterface java.sql.Connection.rollback:()V
        28: .line 1285
            goto 30
      StackMap locals:
      StackMap stack: java.sql.SQLException
        29: pop
        end local 6 // java.lang.Exception E
        30: .line 1288
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 5 // int aBalance
        end local 4 // int delta
        end local 3 // int aid
        end local 2 // int tid
        end local 1 // int bid
        end local 0 // org.hsqldb.test.TestBench$ClientThreadProcedure this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   31     0      this  Lorg/hsqldb/test/TestBench$ClientThreadProcedure;
            0   31     1       bid  I
            0   31     2       tid  I
            0   31     3       aid  I
            0   31     4     delta  I
            1   31     5  aBalance  I
           12   16     6        rs  Ljava/sql/ResultSet;
           21   30     6         E  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           4    19      20  Class java.lang.Exception
          27    28      29  Class java.sql.SQLException
    MethodParameters:
       Name  Flags
      bid    
      tid    
      aid    
      delta  
}
SourceFile: "TestBench.java"
NestHost: org.hsqldb.test.TestBench
InnerClasses:
  ClientThreadProcedure = org.hsqldb.test.TestBench$ClientThreadProcedure of org.hsqldb.test.TestBench