class org.hsqldb.Database$TimeoutRunner implements java.lang.Runnable
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.hsqldb.Database$TimeoutRunner
  super_class: java.lang.Object
{
  private java.lang.Object timerTask;
    descriptor: Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE

  org.hsqldb.lib.OrderedHashSet sessionList;
    descriptor: Lorg/hsqldb/lib/OrderedHashSet;
    flags: (0x0000) 

  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hsqldb.Database$TimeoutRunner this
         0: .line 887
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.hsqldb.Database$TimeoutRunner this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hsqldb/Database$TimeoutRunner;

  public void run();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=1
        start local 0 // org.hsqldb.Database$TimeoutRunner this
         0: .line 895
            aload 0 /* this */
            getfield org.hsqldb.Database$TimeoutRunner.sessionList:Lorg/hsqldb/lib/OrderedHashSet;
            invokevirtual org.hsqldb.lib.OrderedHashSet.size:()I
            iconst_1
            isub
            istore 1 /* i */
        start local 1 // int i
         1: goto 19
         2: .line 896
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.Database$TimeoutRunner.sessionList:Lorg/hsqldb/lib/OrderedHashSet;
            iload 1 /* i */
            invokevirtual org.hsqldb.lib.OrderedHashSet.get:(I)Ljava/lang/Object;
            checkcast org.hsqldb.Session
            astore 2 /* session */
        start local 2 // org.hsqldb.Session session
         3: .line 898
            aload 2 /* session */
            invokevirtual org.hsqldb.Session.isClosed:()Z
            ifeq 10
         4: .line 899
            aload 0 /* this */
            dup
            astore 3
            monitorenter
         5: .line 900
            aload 0 /* this */
            getfield org.hsqldb.Database$TimeoutRunner.sessionList:Lorg/hsqldb/lib/OrderedHashSet;
            iload 1 /* i */
            invokevirtual org.hsqldb.lib.OrderedHashSet.remove:(I)Ljava/lang/Object;
            pop
         6: .line 899
            aload 3
            monitorexit
         7: goto 18
      StackMap locals: org.hsqldb.Database$TimeoutRunner int org.hsqldb.Session org.hsqldb.Database$TimeoutRunner
      StackMap stack: java.lang.Throwable
         8: aload 3
            monitorexit
         9: athrow
        10: .line 906
      StackMap locals:
      StackMap stack:
            aload 2 /* session */
            getfield org.hsqldb.Session.timeoutManager:Lorg/hsqldb/Session$TimeoutManager;
            invokevirtual org.hsqldb.Session$TimeoutManager.checkTimeout:()Z
            istore 3 /* result */
        start local 3 // boolean result
        11: .line 908
            iload 3 /* result */
            ifeq 18
        12: .line 909
            aload 0 /* this */
            dup
            astore 4
            monitorenter
        13: .line 910
            aload 0 /* this */
            getfield org.hsqldb.Database$TimeoutRunner.sessionList:Lorg/hsqldb/lib/OrderedHashSet;
            iload 1 /* i */
            invokevirtual org.hsqldb.lib.OrderedHashSet.remove:(I)Ljava/lang/Object;
            pop
        14: .line 909
            aload 4
            monitorexit
        15: goto 18
      StackMap locals: org.hsqldb.Database$TimeoutRunner int org.hsqldb.Session int org.hsqldb.Database$TimeoutRunner
      StackMap stack: java.lang.Throwable
        16: aload 4
            monitorexit
        17: athrow
        end local 3 // boolean result
        end local 2 // org.hsqldb.Session session
        18: .line 895
      StackMap locals:
      StackMap stack:
            iinc 1 /* i */ -1
      StackMap locals:
      StackMap stack:
        19: iload 1 /* i */
            ifge 2
        end local 1 // int i
        20: .line 914
            goto 22
      StackMap locals: org.hsqldb.Database$TimeoutRunner
      StackMap stack: java.lang.Throwable
        21: pop
        22: .line 919
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.hsqldb.Database$TimeoutRunner this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   23     0     this  Lorg/hsqldb/Database$TimeoutRunner;
            1   20     1        i  I
            3   18     2  session  Lorg/hsqldb/Session;
           11   18     3   result  Z
      Exception table:
        from    to  target  type
           5     7       8  any
           8     9       8  any
          13    15      16  any
          16    17      16  any
           0    20      21  Class java.lang.Throwable

  public void stop();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.hsqldb.Database$TimeoutRunner this
         0: .line 923
            aload 0 /* this */
            dup
            astore 1
            monitorenter
         1: .line 924
            aload 0 /* this */
            getfield org.hsqldb.Database$TimeoutRunner.timerTask:Ljava/lang/Object;
            ifnonnull 4
         2: .line 925
            aload 1
            monitorexit
         3: return
         4: .line 928
      StackMap locals: org.hsqldb.Database$TimeoutRunner
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.Database$TimeoutRunner.timerTask:Ljava/lang/Object;
            invokestatic org.hsqldb.lib.HsqlTimer.cancel:(Ljava/lang/Object;)V
         5: .line 929
            aload 0 /* this */
            getfield org.hsqldb.Database$TimeoutRunner.sessionList:Lorg/hsqldb/lib/OrderedHashSet;
            invokevirtual org.hsqldb.lib.OrderedHashSet.clear:()V
         6: .line 931
            aload 0 /* this */
            aconst_null
            putfield org.hsqldb.Database$TimeoutRunner.timerTask:Ljava/lang/Object;
         7: .line 932
            aload 0 /* this */
            aconst_null
            putfield org.hsqldb.Database$TimeoutRunner.sessionList:Lorg/hsqldb/lib/OrderedHashSet;
         8: .line 923
            aload 1
            monitorexit
         9: goto 12
      StackMap locals:
      StackMap stack: java.lang.Throwable
        10: aload 1
            monitorexit
        11: athrow
        12: .line 934
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.hsqldb.Database$TimeoutRunner this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  this  Lorg/hsqldb/Database$TimeoutRunner;
      Exception table:
        from    to  target  type
           1     3      10  any
           4     9      10  any
          10    11      10  any

  public void addSession(org.hsqldb.Session);
    descriptor: (Lorg/hsqldb/Session;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.hsqldb.Database$TimeoutRunner this
        start local 1 // org.hsqldb.Session session
         0: .line 938
            aload 0 /* this */
            dup
            astore 2
            monitorenter
         1: .line 939
            aload 0 /* this */
            getfield org.hsqldb.Database$TimeoutRunner.timerTask:Ljava/lang/Object;
            ifnonnull 3
         2: .line 940
            aload 0 /* this */
            invokevirtual org.hsqldb.Database$TimeoutRunner.start:()V
         3: .line 943
      StackMap locals: org.hsqldb.Database$TimeoutRunner
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.Database$TimeoutRunner.sessionList:Lorg/hsqldb/lib/OrderedHashSet;
            aload 1 /* session */
            invokevirtual org.hsqldb.lib.OrderedHashSet.add:(Ljava/lang/Object;)Z
            pop
         4: .line 938
            aload 2
            monitorexit
         5: goto 8
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: aload 2
            monitorexit
         7: athrow
         8: .line 945
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.hsqldb.Session session
        end local 0 // org.hsqldb.Database$TimeoutRunner this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    9     0     this  Lorg/hsqldb/Database$TimeoutRunner;
            0    9     1  session  Lorg/hsqldb/Session;
      Exception table:
        from    to  target  type
           1     5       6  any
           6     7       6  any
    MethodParameters:
         Name  Flags
      session  

  private void start();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=1, args_size=1
        start local 0 // org.hsqldb.Database$TimeoutRunner this
         0: .line 949
            aload 0 /* this */
            new org.hsqldb.lib.OrderedHashSet
            dup
            invokespecial org.hsqldb.lib.OrderedHashSet.<init>:()V
            putfield org.hsqldb.Database$TimeoutRunner.sessionList:Lorg/hsqldb/lib/OrderedHashSet;
         1: .line 950
            aload 0 /* this */
            invokestatic org.hsqldb.DatabaseManager.getTimer:()Lorg/hsqldb/lib/HsqlTimer;
            lconst_0
         2: .line 951
            ldc 1000
            aload 0 /* this */
            iconst_1
         3: .line 950
            invokevirtual org.hsqldb.lib.HsqlTimer.schedulePeriodicallyAfter:(JJLjava/lang/Runnable;Z)Ljava/lang/Object;
            putfield org.hsqldb.Database$TimeoutRunner.timerTask:Ljava/lang/Object;
         4: .line 952
            return
        end local 0 // org.hsqldb.Database$TimeoutRunner this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/hsqldb/Database$TimeoutRunner;
}
SourceFile: "Database.java"
NestHost: org.hsqldb.Database
InnerClasses:
  TimeoutRunner = org.hsqldb.Database$TimeoutRunner of org.hsqldb.Database
  TimeoutManager = org.hsqldb.Session$TimeoutManager of org.hsqldb.Session