public class org.apache.batik.util.RunnableQueue implements java.lang.Runnable
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.batik.util.RunnableQueue
  super_class: java.lang.Object
{
  public static final org.apache.batik.util.RunnableQueue$RunnableQueueState RUNNING;
    descriptor: Lorg/apache/batik/util/RunnableQueue$RunnableQueueState;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final org.apache.batik.util.RunnableQueue$RunnableQueueState SUSPENDING;
    descriptor: Lorg/apache/batik/util/RunnableQueue$RunnableQueueState;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final org.apache.batik.util.RunnableQueue$RunnableQueueState SUSPENDED;
    descriptor: Lorg/apache/batik/util/RunnableQueue$RunnableQueueState;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  protected volatile org.apache.batik.util.RunnableQueue$RunnableQueueState state;
    descriptor: Lorg/apache/batik/util/RunnableQueue$RunnableQueueState;
    flags: (0x0044) ACC_PROTECTED, ACC_VOLATILE

  protected final java.lang.Object stateLock;
    descriptor: Ljava/lang/Object;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected boolean wasResumed;
    descriptor: Z
    flags: (0x0004) ACC_PROTECTED

  private final org.apache.batik.util.DoublyLinkedList list;
    descriptor: Lorg/apache/batik/util/DoublyLinkedList;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  protected int preemptCount;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  protected org.apache.batik.util.RunnableQueue$RunHandler runHandler;
    descriptor: Lorg/apache/batik/util/RunnableQueue$RunHandler;
    flags: (0x0004) ACC_PROTECTED

  protected volatile org.apache.batik.util.HaltingThread runnableQueueThread;
    descriptor: Lorg/apache/batik/util/HaltingThread;
    flags: (0x0044) ACC_PROTECTED, ACC_VOLATILE

  private org.apache.batik.util.RunnableQueue$IdleRunnable idleRunnable;
    descriptor: Lorg/apache/batik/util/RunnableQueue$IdleRunnable;
    flags: (0x0002) ACC_PRIVATE

  private long idleRunnableWaitTime;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private static volatile int threadCount;
    descriptor: I
    flags: (0x004a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 53
            new org.apache.batik.util.RunnableQueue$RunnableQueueState
            dup
            ldc "Running"
            invokespecial org.apache.batik.util.RunnableQueue$RunnableQueueState.<init>:(Ljava/lang/String;)V
         1: .line 52
            putstatic org.apache.batik.util.RunnableQueue.RUNNING:Lorg/apache/batik/util/RunnableQueue$RunnableQueueState;
         2: .line 60
            new org.apache.batik.util.RunnableQueue$RunnableQueueState
            dup
            ldc "Suspending"
            invokespecial org.apache.batik.util.RunnableQueue$RunnableQueueState.<init>:(Ljava/lang/String;)V
         3: .line 59
            putstatic org.apache.batik.util.RunnableQueue.SUSPENDING:Lorg/apache/batik/util/RunnableQueue$RunnableQueueState;
         4: .line 67
            new org.apache.batik.util.RunnableQueue$RunnableQueueState
            dup
            ldc "Suspended"
            invokespecial org.apache.batik.util.RunnableQueue$RunnableQueueState.<init>:(Ljava/lang/String;)V
         5: .line 66
            putstatic org.apache.batik.util.RunnableQueue.SUSPENDED:Lorg/apache/batik/util/RunnableQueue$RunnableQueueState;
         6: .line 143
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.batik.util.RunnableQueue this
         0: .line 31
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 78
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield org.apache.batik.util.RunnableQueue.stateLock:Ljava/lang/Object;
         2: .line 90
            aload 0 /* this */
            new org.apache.batik.util.DoublyLinkedList
            dup
            invokespecial org.apache.batik.util.DoublyLinkedList.<init>:()V
            putfield org.apache.batik.util.RunnableQueue.list:Lorg/apache/batik/util/DoublyLinkedList;
         3: .line 31
            return
        end local 0 // org.apache.batik.util.RunnableQueue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/apache/batik/util/RunnableQueue;

  public static org.apache.batik.util.RunnableQueue createRunnableQueue();
    descriptor: ()Lorg/apache/batik/util/RunnableQueue;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=3, args_size=0
         0: .line 124
            new org.apache.batik.util.RunnableQueue
            dup
            invokespecial org.apache.batik.util.RunnableQueue.<init>:()V
            astore 0 /* result */
        start local 0 // org.apache.batik.util.RunnableQueue result
         1: .line 125
            aload 0 /* result */
            dup
            astore 1
            monitorenter
         2: .line 129
            new org.apache.batik.util.HaltingThread
            dup
         3: .line 130
            aload 0 /* result */
            new java.lang.StringBuilder
            dup
            ldc "RunnableQueue-"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            getstatic org.apache.batik.util.RunnableQueue.threadCount:I
            dup
            iconst_1
            iadd
            putstatic org.apache.batik.util.RunnableQueue.threadCount:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         4: .line 129
            invokespecial org.apache.batik.util.HaltingThread.<init>:(Ljava/lang/Runnable;Ljava/lang/String;)V
            astore 2 /* ht */
        start local 2 // org.apache.batik.util.HaltingThread ht
         5: .line 131
            aload 2 /* ht */
            iconst_1
            invokevirtual org.apache.batik.util.HaltingThread.setDaemon:(Z)V
         6: .line 132
            aload 2 /* ht */
            invokevirtual org.apache.batik.util.HaltingThread.start:()V
         7: .line 133
            goto 11
         8: .line 135
      StackMap locals: org.apache.batik.util.RunnableQueue org.apache.batik.util.RunnableQueue org.apache.batik.util.HaltingThread
      StackMap stack:
            aload 0 /* result */
            invokevirtual java.lang.Object.wait:()V
         9: .line 136
            goto 11
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
        10: pop
        11: .line 133
      StackMap locals:
      StackMap stack:
            aload 0 /* result */
            invokevirtual org.apache.batik.util.RunnableQueue.getThread:()Lorg/apache/batik/util/HaltingThread;
            ifnull 8
        end local 2 // org.apache.batik.util.HaltingThread ht
        12: .line 125
            aload 1
            monitorexit
        13: goto 16
      StackMap locals: org.apache.batik.util.RunnableQueue org.apache.batik.util.RunnableQueue
      StackMap stack: java.lang.Throwable
        14: aload 1
            monitorexit
        15: athrow
        16: .line 140
      StackMap locals:
      StackMap stack:
            aload 0 /* result */
            areturn
        end local 0 // org.apache.batik.util.RunnableQueue result
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            1   17     0  result  Lorg/apache/batik/util/RunnableQueue;
            5   12     2      ht  Lorg/apache/batik/util/HaltingThread;
      Exception table:
        from    to  target  type
           8     9      10  Class java.lang.InterruptedException
           2    13      14  any
          14    15      14  any

  public void run();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=10, args_size=1
        start local 0 // org.apache.batik.util.RunnableQueue this
         0: .line 149
            aload 0 /* this */
            dup
            astore 1
            monitorenter
         1: .line 150
            aload 0 /* this */
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            checkcast org.apache.batik.util.HaltingThread
            putfield org.apache.batik.util.RunnableQueue.runnableQueueThread:Lorg/apache/batik/util/HaltingThread;
         2: .line 153
            aload 0 /* this */
            invokevirtual java.lang.Object.notify:()V
         3: .line 149
            aload 1
            monitorexit
         4: goto 81
      StackMap locals: org.apache.batik.util.RunnableQueue org.apache.batik.util.RunnableQueue
      StackMap stack: java.lang.Throwable
         5: aload 1
            monitorexit
         6: athrow
         7: .line 160
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 3 /* callSuspended */
        start local 3 // boolean callSuspended
         8: .line 161
            iconst_0
            istore 4 /* callResumed */
        start local 4 // boolean callResumed
         9: .line 163
            aload 0 /* this */
            getfield org.apache.batik.util.RunnableQueue.stateLock:Ljava/lang/Object;
            dup
            astore 5
            monitorenter
        10: .line 164
            aload 0 /* this */
            getfield org.apache.batik.util.RunnableQueue.state:Lorg/apache/batik/util/RunnableQueue$RunnableQueueState;
            getstatic org.apache.batik.util.RunnableQueue.RUNNING:Lorg/apache/batik/util/RunnableQueue$RunnableQueueState;
            if_acmpeq 13
        11: .line 165
            aload 0 /* this */
            getstatic org.apache.batik.util.RunnableQueue.SUSPENDED:Lorg/apache/batik/util/RunnableQueue$RunnableQueueState;
            putfield org.apache.batik.util.RunnableQueue.state:Lorg/apache/batik/util/RunnableQueue$RunnableQueueState;
        12: .line 166
            iconst_1
            istore 3 /* callSuspended */
        13: .line 163
      StackMap locals: org.apache.batik.util.RunnableQueue top top int int java.lang.Object
      StackMap stack:
            aload 5
            monitorexit
        14: goto 17
      StackMap locals:
      StackMap stack: java.lang.Throwable
        15: aload 5
            monitorexit
        16: athrow
        17: .line 169
      StackMap locals:
      StackMap stack:
            iload 3 /* callSuspended */
            ifeq 19
        18: .line 170
            aload 0 /* this */
            invokevirtual org.apache.batik.util.RunnableQueue.executionSuspended:()V
        19: .line 172
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.batik.util.RunnableQueue.stateLock:Ljava/lang/Object;
            dup
            astore 5
            monitorenter
        20: .line 173
            goto 26
        21: .line 174
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getstatic org.apache.batik.util.RunnableQueue.SUSPENDED:Lorg/apache/batik/util/RunnableQueue$RunnableQueueState;
            putfield org.apache.batik.util.RunnableQueue.state:Lorg/apache/batik/util/RunnableQueue$RunnableQueueState;
        22: .line 178
            aload 0 /* this */
            getfield org.apache.batik.util.RunnableQueue.stateLock:Ljava/lang/Object;
            invokevirtual java.lang.Object.notifyAll:()V
        23: .line 182
            aload 0 /* this */
            getfield org.apache.batik.util.RunnableQueue.stateLock:Ljava/lang/Object;
            invokevirtual java.lang.Object.wait:()V
        24: .line 183
            goto 26
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
        25: pop
        26: .line 173
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.batik.util.RunnableQueue.state:Lorg/apache/batik/util/RunnableQueue$RunnableQueueState;
            getstatic org.apache.batik.util.RunnableQueue.RUNNING:Lorg/apache/batik/util/RunnableQueue$RunnableQueueState;
            if_acmpne 21
        27: .line 186
            aload 0 /* this */
            getfield org.apache.batik.util.RunnableQueue.wasResumed:Z
            ifeq 30
        28: .line 187
            aload 0 /* this */
            iconst_0
            putfield org.apache.batik.util.RunnableQueue.wasResumed:Z
        29: .line 188
            iconst_1
            istore 4 /* callResumed */
        30: .line 172
      StackMap locals:
      StackMap stack:
            aload 5
            monitorexit
        31: goto 34
      StackMap locals:
      StackMap stack: java.lang.Throwable
        32: aload 5
            monitorexit
        33: athrow
        34: .line 192
      StackMap locals:
      StackMap stack:
            iload 4 /* callResumed */
            ifeq 36
        35: .line 193
            aload 0 /* this */
            invokevirtual org.apache.batik.util.RunnableQueue.executionResumed:()V
        36: .line 202
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.batik.util.RunnableQueue.list:Lorg/apache/batik/util/DoublyLinkedList;
            dup
            astore 5
            monitorenter
        37: .line 203
            aload 0 /* this */
            getfield org.apache.batik.util.RunnableQueue.state:Lorg/apache/batik/util/RunnableQueue$RunnableQueueState;
            getstatic org.apache.batik.util.RunnableQueue.SUSPENDING:Lorg/apache/batik/util/RunnableQueue$RunnableQueueState;
            if_acmpne 40
        38: .line 204
            aload 5
            monitorexit
        39: goto 81
        40: .line 205
      StackMap locals: org.apache.batik.util.DoublyLinkedList
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.batik.util.RunnableQueue.list:Lorg/apache/batik/util/DoublyLinkedList;
            invokevirtual org.apache.batik.util.DoublyLinkedList.pop:()Lorg/apache/batik/util/DoublyLinkedList$Node;
            checkcast org.apache.batik.util.RunnableQueue$Link
            astore 1 /* l */
        start local 1 // org.apache.batik.util.RunnableQueue$Link l
        41: .line 206
            aload 0 /* this */
            getfield org.apache.batik.util.RunnableQueue.preemptCount:I
            ifeq 42
            aload 0 /* this */
            dup
            getfield org.apache.batik.util.RunnableQueue.preemptCount:I
            iconst_1
            isub
            putfield org.apache.batik.util.RunnableQueue.preemptCount:I
        42: .line 207
      StackMap locals: org.apache.batik.util.RunnableQueue org.apache.batik.util.RunnableQueue$Link top int int org.apache.batik.util.DoublyLinkedList
      StackMap stack:
            aload 1 /* l */
            ifnonnull 61
        43: .line 210
            aload 0 /* this */
            getfield org.apache.batik.util.RunnableQueue.idleRunnable:Lorg/apache/batik/util/RunnableQueue$IdleRunnable;
            ifnull 48
        44: .line 211
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.batik.util.RunnableQueue.idleRunnable:Lorg/apache/batik/util/RunnableQueue$IdleRunnable;
            invokeinterface org.apache.batik.util.RunnableQueue$IdleRunnable.getWaitTime:()J
            dup2_x1
            putfield org.apache.batik.util.RunnableQueue.idleRunnableWaitTime:J
        45: .line 212
            invokestatic java.lang.System.currentTimeMillis:()J
            lcmp
            ifge 48
        46: .line 213
            aload 0 /* this */
            getfield org.apache.batik.util.RunnableQueue.idleRunnable:Lorg/apache/batik/util/RunnableQueue$IdleRunnable;
            astore 2 /* rable */
        start local 2 // java.lang.Runnable rable
        47: .line 214
            goto 62
        end local 2 // java.lang.Runnable rable
        48: .line 217
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.batik.util.RunnableQueue.idleRunnable:Lorg/apache/batik/util/RunnableQueue$IdleRunnable;
            ifnull 56
            aload 0 /* this */
            getfield org.apache.batik.util.RunnableQueue.idleRunnableWaitTime:J
        49: .line 218
            ldc 9223372036854775807
            lcmp
            ifeq 56
        50: .line 219
            aload 0 /* this */
            getfield org.apache.batik.util.RunnableQueue.idleRunnableWaitTime:J
        51: .line 220
            invokestatic java.lang.System.currentTimeMillis:()J
        52: .line 219
            lsub
            lstore 6 /* t */
        start local 6 // long t
        53: .line 221
            lload 6 /* t */
            lconst_0
            lcmp
            ifle 59
        54: .line 222
            aload 0 /* this */
            getfield org.apache.batik.util.RunnableQueue.list:Lorg/apache/batik/util/DoublyLinkedList;
            lload 6 /* t */
            invokevirtual java.lang.Object.wait:(J)V
        end local 6 // long t
        55: .line 224
            goto 59
        56: .line 225
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.batik.util.RunnableQueue.list:Lorg/apache/batik/util/DoublyLinkedList;
            invokevirtual java.lang.Object.wait:()V
        57: .line 227
            goto 59
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
        58: pop
        59: .line 230
      StackMap locals:
      StackMap stack:
            aload 5
            monitorexit
        60: goto 81
        61: .line 233
      StackMap locals:
      StackMap stack:
            aload 1 /* l */
            getfield org.apache.batik.util.RunnableQueue$Link.runnable:Ljava/lang/Runnable;
            astore 2 /* rable */
        start local 2 // java.lang.Runnable rable
        62: .line 202
      StackMap locals: org.apache.batik.util.RunnableQueue org.apache.batik.util.RunnableQueue$Link java.lang.Runnable int int org.apache.batik.util.DoublyLinkedList
      StackMap stack:
            aload 5
            monitorexit
        63: goto 66
        end local 2 // java.lang.Runnable rable
        end local 1 // org.apache.batik.util.RunnableQueue$Link l
      StackMap locals: org.apache.batik.util.RunnableQueue top top int int org.apache.batik.util.DoublyLinkedList
      StackMap stack: java.lang.Throwable
        64: aload 5
            monitorexit
        65: athrow
        start local 1 // org.apache.batik.util.RunnableQueue$Link l
        start local 2 // java.lang.Runnable rable
        66: .line 238
      StackMap locals: org.apache.batik.util.RunnableQueue org.apache.batik.util.RunnableQueue$Link java.lang.Runnable int int
      StackMap stack:
            aload 0 /* this */
            aload 2 /* rable */
            invokevirtual org.apache.batik.util.RunnableQueue.runnableStart:(Ljava/lang/Runnable;)V
        67: .line 240
            aload 2 /* rable */
            invokeinterface java.lang.Runnable.run:()V
        68: .line 241
            goto 73
      StackMap locals:
      StackMap stack: java.lang.ThreadDeath
        69: astore 5 /* td */
        start local 5 // java.lang.ThreadDeath td
        70: .line 243
            aload 5 /* td */
            athrow
        end local 5 // java.lang.ThreadDeath td
        71: .line 244
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 5 /* t */
        start local 5 // java.lang.Throwable t
        72: .line 247
            aload 5 /* t */
            invokevirtual java.lang.Throwable.printStackTrace:()V
        end local 5 // java.lang.Throwable t
        73: .line 251
      StackMap locals:
      StackMap stack:
            aload 1 /* l */
            ifnull 75
        74: .line 252
            aload 1 /* l */
            invokevirtual org.apache.batik.util.RunnableQueue$Link.unlock:()V
        75: .line 256
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* rable */
            invokevirtual org.apache.batik.util.RunnableQueue.runnableInvoked:(Ljava/lang/Runnable;)V
        76: .line 257
            goto 81
      StackMap locals:
      StackMap stack: java.lang.ThreadDeath
        77: astore 5 /* td */
        start local 5 // java.lang.ThreadDeath td
        78: .line 259
            aload 5 /* td */
            athrow
        end local 5 // java.lang.ThreadDeath td
        79: .line 260
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 5 /* t */
        start local 5 // java.lang.Throwable t
        80: .line 263
            aload 5 /* t */
            invokevirtual java.lang.Throwable.printStackTrace:()V
        end local 5 // java.lang.Throwable t
        end local 4 // boolean callResumed
        end local 3 // boolean callSuspended
        end local 2 // java.lang.Runnable rable
        end local 1 // org.apache.batik.util.RunnableQueue$Link l
        81: .line 159
      StackMap locals: org.apache.batik.util.RunnableQueue
      StackMap stack:
            invokestatic org.apache.batik.util.HaltingThread.hasBeenHalted:()Z
            ifeq 7
        82: .line 266
            goto 100
      StackMap locals:
      StackMap stack: java.lang.Throwable
        83: astore 8
        84: .line 272
      StackMap locals: org.apache.batik.util.RunnableQueue top top top top top top top java.lang.Throwable
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.batik.util.RunnableQueue.list:Lorg/apache/batik/util/DoublyLinkedList;
            dup
            astore 9
            monitorenter
        85: .line 273
            aload 0 /* this */
            getfield org.apache.batik.util.RunnableQueue.list:Lorg/apache/batik/util/DoublyLinkedList;
            invokevirtual org.apache.batik.util.DoublyLinkedList.pop:()Lorg/apache/batik/util/DoublyLinkedList$Node;
            checkcast org.apache.batik.util.RunnableQueue$Link
            astore 1 /* l */
        start local 1 // org.apache.batik.util.RunnableQueue$Link l
        86: .line 272
            aload 9
            monitorexit
        87: goto 90
        end local 1 // org.apache.batik.util.RunnableQueue$Link l
      StackMap locals: org.apache.batik.util.RunnableQueue top top top top top top top java.lang.Throwable org.apache.batik.util.DoublyLinkedList
      StackMap stack: java.lang.Throwable
        88: aload 9
            monitorexit
        89: athrow
        start local 1 // org.apache.batik.util.RunnableQueue$Link l
        90: .line 275
      StackMap locals: org.apache.batik.util.RunnableQueue org.apache.batik.util.RunnableQueue$Link top top top top top top java.lang.Throwable
      StackMap stack:
            aload 1 /* l */
            ifnonnull 91
            goto 93
        91: .line 276
      StackMap locals:
      StackMap stack:
            aload 1 /* l */
            invokevirtual org.apache.batik.util.RunnableQueue$Link.unlock:()V
        92: .line 277
            goto 84
        93: .line 279
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            astore 9
            monitorenter
        94: .line 280
            aload 0 /* this */
            aconst_null
            putfield org.apache.batik.util.RunnableQueue.runnableQueueThread:Lorg/apache/batik/util/HaltingThread;
        95: .line 279
            aload 9
            monitorexit
        96: goto 99
      StackMap locals: org.apache.batik.util.RunnableQueue org.apache.batik.util.RunnableQueue$Link top top top top top top java.lang.Throwable org.apache.batik.util.RunnableQueue
      StackMap stack: java.lang.Throwable
        97: aload 9
            monitorexit
        98: athrow
        99: .line 282
      StackMap locals:
      StackMap stack:
            aload 8
            athrow
        end local 1 // org.apache.batik.util.RunnableQueue$Link l
       100: .line 272
      StackMap locals: org.apache.batik.util.RunnableQueue
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.batik.util.RunnableQueue.list:Lorg/apache/batik/util/DoublyLinkedList;
            dup
            astore 9
            monitorenter
       101: .line 273
            aload 0 /* this */
            getfield org.apache.batik.util.RunnableQueue.list:Lorg/apache/batik/util/DoublyLinkedList;
            invokevirtual org.apache.batik.util.DoublyLinkedList.pop:()Lorg/apache/batik/util/DoublyLinkedList$Node;
            checkcast org.apache.batik.util.RunnableQueue$Link
            astore 1 /* l */
        start local 1 // org.apache.batik.util.RunnableQueue$Link l
       102: .line 272
            aload 9
            monitorexit
       103: goto 106
        end local 1 // org.apache.batik.util.RunnableQueue$Link l
      StackMap locals: org.apache.batik.util.RunnableQueue top top top top top top top top org.apache.batik.util.DoublyLinkedList
      StackMap stack: java.lang.Throwable
       104: aload 9
            monitorexit
       105: athrow
        start local 1 // org.apache.batik.util.RunnableQueue$Link l
       106: .line 275
      StackMap locals: org.apache.batik.util.RunnableQueue org.apache.batik.util.RunnableQueue$Link
      StackMap stack:
            aload 1 /* l */
            ifnonnull 107
            goto 109
       107: .line 276
      StackMap locals:
      StackMap stack:
            aload 1 /* l */
            invokevirtual org.apache.batik.util.RunnableQueue$Link.unlock:()V
       108: .line 277
            goto 100
       109: .line 279
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            astore 9
            monitorenter
       110: .line 280
            aload 0 /* this */
            aconst_null
            putfield org.apache.batik.util.RunnableQueue.runnableQueueThread:Lorg/apache/batik/util/HaltingThread;
       111: .line 279
            aload 9
            monitorexit
       112: goto 115
      StackMap locals: org.apache.batik.util.RunnableQueue org.apache.batik.util.RunnableQueue$Link top top top top top top top org.apache.batik.util.RunnableQueue
      StackMap stack: java.lang.Throwable
       113: aload 9
            monitorexit
       114: athrow
       115: .line 283
      StackMap locals: org.apache.batik.util.RunnableQueue org.apache.batik.util.RunnableQueue$Link
      StackMap stack:
            return
        end local 1 // org.apache.batik.util.RunnableQueue$Link l
        end local 0 // org.apache.batik.util.RunnableQueue this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0  116     0           this  Lorg/apache/batik/util/RunnableQueue;
           41   64     1              l  Lorg/apache/batik/util/RunnableQueue$Link;
           66   81     1              l  Lorg/apache/batik/util/RunnableQueue$Link;
           86   88     1              l  Lorg/apache/batik/util/RunnableQueue$Link;
           90  100     1              l  Lorg/apache/batik/util/RunnableQueue$Link;
          102  104     1              l  Lorg/apache/batik/util/RunnableQueue$Link;
          106  116     1              l  Lorg/apache/batik/util/RunnableQueue$Link;
           47   48     2          rable  Ljava/lang/Runnable;
           62   64     2          rable  Ljava/lang/Runnable;
           66   81     2          rable  Ljava/lang/Runnable;
            8   81     3  callSuspended  Z
            9   81     4    callResumed  Z
           53   55     6              t  J
           70   71     5             td  Ljava/lang/ThreadDeath;
           72   73     5              t  Ljava/lang/Throwable;
           78   79     5             td  Ljava/lang/ThreadDeath;
           80   81     5              t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           1     4       5  any
           5     6       5  any
          10    14      15  any
          15    16      15  any
          23    24      25  Class java.lang.InterruptedException
          20    31      32  any
          32    33      32  any
          48    57      58  Class java.lang.InterruptedException
          37    39      64  any
          40    60      64  any
          61    63      64  any
          64    65      64  any
          66    68      69  Class java.lang.ThreadDeath
          66    68      71  Class java.lang.Throwable
          75    76      77  Class java.lang.ThreadDeath
          75    76      79  Class java.lang.Throwable
           7    83      83  any
          85    87      88  any
          88    89      88  any
          94    96      97  any
          97    98      97  any
         101   103     104  any
         104   105     104  any
         110   112     113  any
         113   114     113  any

  public org.apache.batik.util.HaltingThread getThread();
    descriptor: ()Lorg/apache/batik/util/HaltingThread;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.batik.util.RunnableQueue this
         0: .line 291
            aload 0 /* this */
            getfield org.apache.batik.util.RunnableQueue.runnableQueueThread:Lorg/apache/batik/util/HaltingThread;
            areturn
        end local 0 // org.apache.batik.util.RunnableQueue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/batik/util/RunnableQueue;

  public void invokeLater(java.lang.Runnable);
    descriptor: (Ljava/lang/Runnable;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.apache.batik.util.RunnableQueue this
        start local 1 // java.lang.Runnable r
         0: .line 301
            aload 0 /* this */
            getfield org.apache.batik.util.RunnableQueue.runnableQueueThread:Lorg/apache/batik/util/HaltingThread;
            ifnonnull 4
         1: .line 302
            new java.lang.IllegalStateException
            dup
         2: .line 303
            ldc "RunnableQueue not started or has exited"
         3: .line 302
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 305
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.batik.util.RunnableQueue.list:Lorg/apache/batik/util/DoublyLinkedList;
            dup
            astore 2
            monitorenter
         5: .line 306
            aload 0 /* this */
            getfield org.apache.batik.util.RunnableQueue.list:Lorg/apache/batik/util/DoublyLinkedList;
            new org.apache.batik.util.RunnableQueue$Link
            dup
            aload 1 /* r */
            invokespecial org.apache.batik.util.RunnableQueue$Link.<init>:(Ljava/lang/Runnable;)V
            invokevirtual org.apache.batik.util.DoublyLinkedList.push:(Lorg/apache/batik/util/DoublyLinkedList$Node;)V
         6: .line 307
            aload 0 /* this */
            getfield org.apache.batik.util.RunnableQueue.list:Lorg/apache/batik/util/DoublyLinkedList;
            invokevirtual java.lang.Object.notify:()V
         7: .line 305
            aload 2
            monitorexit
         8: goto 11
      StackMap locals: org.apache.batik.util.RunnableQueue java.lang.Runnable org.apache.batik.util.DoublyLinkedList
      StackMap stack: java.lang.Throwable
         9: aload 2
            monitorexit
        10: athrow
        11: .line 309
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Runnable r
        end local 0 // org.apache.batik.util.RunnableQueue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Lorg/apache/batik/util/RunnableQueue;
            0   12     1     r  Ljava/lang/Runnable;
      Exception table:
        from    to  target  type
           5     8       9  any
           9    10       9  any
    MethodParameters:
      Name  Flags
      r     

  public void invokeAndWait(java.lang.Runnable);
    descriptor: (Ljava/lang/Runnable;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.apache.batik.util.RunnableQueue this
        start local 1 // java.lang.Runnable r
         0: .line 320
            aload 0 /* this */
            getfield org.apache.batik.util.RunnableQueue.runnableQueueThread:Lorg/apache/batik/util/HaltingThread;
            ifnonnull 4
         1: .line 321
            new java.lang.IllegalStateException
            dup
         2: .line 322
            ldc "RunnableQueue not started or has exited"
         3: .line 321
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 324
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.batik.util.RunnableQueue.runnableQueueThread:Lorg/apache/batik/util/HaltingThread;
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            if_acmpne 8
         5: .line 325
            new java.lang.IllegalStateException
            dup
         6: .line 326
            ldc "Cannot be called from the RunnableQueue thread"
         7: .line 325
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 329
      StackMap locals:
      StackMap stack:
            new org.apache.batik.util.RunnableQueue$LockableLink
            dup
            aload 1 /* r */
            invokespecial org.apache.batik.util.RunnableQueue$LockableLink.<init>:(Ljava/lang/Runnable;)V
            astore 2 /* l */
        start local 2 // org.apache.batik.util.RunnableQueue$LockableLink l
         9: .line 330
            aload 0 /* this */
            getfield org.apache.batik.util.RunnableQueue.list:Lorg/apache/batik/util/DoublyLinkedList;
            dup
            astore 3
            monitorenter
        10: .line 331
            aload 0 /* this */
            getfield org.apache.batik.util.RunnableQueue.list:Lorg/apache/batik/util/DoublyLinkedList;
            aload 2 /* l */
            invokevirtual org.apache.batik.util.DoublyLinkedList.push:(Lorg/apache/batik/util/DoublyLinkedList$Node;)V
        11: .line 332
            aload 0 /* this */
            getfield org.apache.batik.util.RunnableQueue.list:Lorg/apache/batik/util/DoublyLinkedList;
            invokevirtual java.lang.Object.notify:()V
        12: .line 330
            aload 3
            monitorexit
        13: goto 16
      StackMap locals: org.apache.batik.util.RunnableQueue java.lang.Runnable org.apache.batik.util.RunnableQueue$LockableLink org.apache.batik.util.DoublyLinkedList
      StackMap stack: java.lang.Throwable
        14: aload 3
            monitorexit
        15: athrow
        16: .line 334
      StackMap locals:
      StackMap stack:
            aload 2 /* l */
            invokevirtual org.apache.batik.util.RunnableQueue$LockableLink.lock:()V
        17: .line 335
            return
        end local 2 // org.apache.batik.util.RunnableQueue$LockableLink l
        end local 1 // java.lang.Runnable r
        end local 0 // org.apache.batik.util.RunnableQueue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   18     0  this  Lorg/apache/batik/util/RunnableQueue;
            0   18     1     r  Ljava/lang/Runnable;
            9   18     2     l  Lorg/apache/batik/util/RunnableQueue$LockableLink;
      Exception table:
        from    to  target  type
          10    13      14  any
          14    15      14  any
    Exceptions:
      throws java.lang.InterruptedException
    MethodParameters:
      Name  Flags
      r     

  public void preemptLater(java.lang.Runnable);
    descriptor: (Ljava/lang/Runnable;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.apache.batik.util.RunnableQueue this
        start local 1 // java.lang.Runnable r
         0: .line 347
            aload 0 /* this */
            getfield org.apache.batik.util.RunnableQueue.runnableQueueThread:Lorg/apache/batik/util/HaltingThread;
            ifnonnull 4
         1: .line 348
            new java.lang.IllegalStateException
            dup
         2: .line 349
            ldc "RunnableQueue not started or has exited"
         3: .line 348
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 351
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.batik.util.RunnableQueue.list:Lorg/apache/batik/util/DoublyLinkedList;
            dup
            astore 2
            monitorenter
         5: .line 352
            aload 0 /* this */
            getfield org.apache.batik.util.RunnableQueue.list:Lorg/apache/batik/util/DoublyLinkedList;
            aload 0 /* this */
            getfield org.apache.batik.util.RunnableQueue.preemptCount:I
            new org.apache.batik.util.RunnableQueue$Link
            dup
            aload 1 /* r */
            invokespecial org.apache.batik.util.RunnableQueue$Link.<init>:(Ljava/lang/Runnable;)V
            invokevirtual org.apache.batik.util.DoublyLinkedList.add:(ILorg/apache/batik/util/DoublyLinkedList$Node;)V
         6: .line 353
            aload 0 /* this */
            dup
            getfield org.apache.batik.util.RunnableQueue.preemptCount:I
            iconst_1
            iadd
            putfield org.apache.batik.util.RunnableQueue.preemptCount:I
         7: .line 354
            aload 0 /* this */
            getfield org.apache.batik.util.RunnableQueue.list:Lorg/apache/batik/util/DoublyLinkedList;
            invokevirtual java.lang.Object.notify:()V
         8: .line 351
            aload 2
            monitorexit
         9: goto 12
      StackMap locals: org.apache.batik.util.RunnableQueue java.lang.Runnable org.apache.batik.util.DoublyLinkedList
      StackMap stack: java.lang.Throwable
        10: aload 2
            monitorexit
        11: athrow
        12: .line 356
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Runnable r
        end local 0 // org.apache.batik.util.RunnableQueue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  this  Lorg/apache/batik/util/RunnableQueue;
            0   13     1     r  Ljava/lang/Runnable;
      Exception table:
        from    to  target  type
           5     9      10  any
          10    11      10  any
    MethodParameters:
      Name  Flags
      r     

  public void preemptAndWait(java.lang.Runnable);
    descriptor: (Ljava/lang/Runnable;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.apache.batik.util.RunnableQueue this
        start local 1 // java.lang.Runnable r
         0: .line 369
            aload 0 /* this */
            getfield org.apache.batik.util.RunnableQueue.runnableQueueThread:Lorg/apache/batik/util/HaltingThread;
            ifnonnull 4
         1: .line 370
            new java.lang.IllegalStateException
            dup
         2: .line 371
            ldc "RunnableQueue not started or has exited"
         3: .line 370
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 373
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.batik.util.RunnableQueue.runnableQueueThread:Lorg/apache/batik/util/HaltingThread;
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            if_acmpne 8
         5: .line 374
            new java.lang.IllegalStateException
            dup
         6: .line 375
            ldc "Cannot be called from the RunnableQueue thread"
         7: .line 374
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 378
      StackMap locals:
      StackMap stack:
            new org.apache.batik.util.RunnableQueue$LockableLink
            dup
            aload 1 /* r */
            invokespecial org.apache.batik.util.RunnableQueue$LockableLink.<init>:(Ljava/lang/Runnable;)V
            astore 2 /* l */
        start local 2 // org.apache.batik.util.RunnableQueue$LockableLink l
         9: .line 379
            aload 0 /* this */
            getfield org.apache.batik.util.RunnableQueue.list:Lorg/apache/batik/util/DoublyLinkedList;
            dup
            astore 3
            monitorenter
        10: .line 380
            aload 0 /* this */
            getfield org.apache.batik.util.RunnableQueue.list:Lorg/apache/batik/util/DoublyLinkedList;
            aload 0 /* this */
            getfield org.apache.batik.util.RunnableQueue.preemptCount:I
            aload 2 /* l */
            invokevirtual org.apache.batik.util.DoublyLinkedList.add:(ILorg/apache/batik/util/DoublyLinkedList$Node;)V
        11: .line 381
            aload 0 /* this */
            dup
            getfield org.apache.batik.util.RunnableQueue.preemptCount:I
            iconst_1
            iadd
            putfield org.apache.batik.util.RunnableQueue.preemptCount:I
        12: .line 382
            aload 0 /* this */
            getfield org.apache.batik.util.RunnableQueue.list:Lorg/apache/batik/util/DoublyLinkedList;
            invokevirtual java.lang.Object.notify:()V
        13: .line 379
            aload 3
            monitorexit
        14: goto 17
      StackMap locals: org.apache.batik.util.RunnableQueue java.lang.Runnable org.apache.batik.util.RunnableQueue$LockableLink org.apache.batik.util.DoublyLinkedList
      StackMap stack: java.lang.Throwable
        15: aload 3
            monitorexit
        16: athrow
        17: .line 384
      StackMap locals:
      StackMap stack:
            aload 2 /* l */
            invokevirtual org.apache.batik.util.RunnableQueue$LockableLink.lock:()V
        18: .line 385
            return
        end local 2 // org.apache.batik.util.RunnableQueue$LockableLink l
        end local 1 // java.lang.Runnable r
        end local 0 // org.apache.batik.util.RunnableQueue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   19     0  this  Lorg/apache/batik/util/RunnableQueue;
            0   19     1     r  Ljava/lang/Runnable;
            9   19     2     l  Lorg/apache/batik/util/RunnableQueue$LockableLink;
      Exception table:
        from    to  target  type
          10    14      15  any
          15    16      15  any
    Exceptions:
      throws java.lang.InterruptedException
    MethodParameters:
      Name  Flags
      r     

  public org.apache.batik.util.RunnableQueue$RunnableQueueState getQueueState();
    descriptor: ()Lorg/apache/batik/util/RunnableQueue$RunnableQueueState;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.apache.batik.util.RunnableQueue this
         0: .line 388
            aload 0 /* this */
            getfield org.apache.batik.util.RunnableQueue.stateLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 389
            aload 0 /* this */
            getfield org.apache.batik.util.RunnableQueue.state:Lorg/apache/batik/util/RunnableQueue$RunnableQueueState;
            aload 1
            monitorexit
         2: areturn
         3: .line 388
      StackMap locals: org.apache.batik.util.RunnableQueue java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
         4: athrow
        end local 0 // org.apache.batik.util.RunnableQueue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/apache/batik/util/RunnableQueue;
      Exception table:
        from    to  target  type
           1     2       3  any
           3     4       3  any

  public void suspendExecution(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.apache.batik.util.RunnableQueue this
        start local 1 // boolean waitTillSuspended
         0: .line 405
            aload 0 /* this */
            getfield org.apache.batik.util.RunnableQueue.runnableQueueThread:Lorg/apache/batik/util/HaltingThread;
            ifnonnull 4
         1: .line 406
            new java.lang.IllegalStateException
            dup
         2: .line 407
            ldc "RunnableQueue not started or has exited"
         3: .line 406
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 410
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.batik.util.RunnableQueue.stateLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         5: .line 411
            aload 0 /* this */
            iconst_0
            putfield org.apache.batik.util.RunnableQueue.wasResumed:Z
         6: .line 413
            aload 0 /* this */
            getfield org.apache.batik.util.RunnableQueue.state:Lorg/apache/batik/util/RunnableQueue$RunnableQueueState;
            getstatic org.apache.batik.util.RunnableQueue.SUSPENDED:Lorg/apache/batik/util/RunnableQueue$RunnableQueueState;
            if_acmpne 10
         7: .line 416
            aload 0 /* this */
            getfield org.apache.batik.util.RunnableQueue.stateLock:Ljava/lang/Object;
            invokevirtual java.lang.Object.notifyAll:()V
         8: .line 417
            aload 2
            monitorexit
         9: return
        10: .line 420
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.batik.util.RunnableQueue.state:Lorg/apache/batik/util/RunnableQueue$RunnableQueueState;
            getstatic org.apache.batik.util.RunnableQueue.RUNNING:Lorg/apache/batik/util/RunnableQueue$RunnableQueueState;
            if_acmpne 18
        11: .line 421
            aload 0 /* this */
            getstatic org.apache.batik.util.RunnableQueue.SUSPENDING:Lorg/apache/batik/util/RunnableQueue$RunnableQueueState;
            putfield org.apache.batik.util.RunnableQueue.state:Lorg/apache/batik/util/RunnableQueue$RunnableQueueState;
        12: .line 422
            aload 0 /* this */
            getfield org.apache.batik.util.RunnableQueue.list:Lorg/apache/batik/util/DoublyLinkedList;
            dup
            astore 3
            monitorenter
        13: .line 426
            aload 0 /* this */
            getfield org.apache.batik.util.RunnableQueue.list:Lorg/apache/batik/util/DoublyLinkedList;
            invokevirtual java.lang.Object.notify:()V
        14: .line 422
            aload 3
            monitorexit
        15: goto 18
      StackMap locals: org.apache.batik.util.RunnableQueue int java.lang.Object org.apache.batik.util.DoublyLinkedList
      StackMap stack: java.lang.Throwable
        16: aload 3
            monitorexit
        17: athrow
        18: .line 430
      StackMap locals:
      StackMap stack:
            iload 1 /* waitTillSuspended */
            ifeq 24
        19: .line 431
            goto 23
        20: .line 433
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.batik.util.RunnableQueue.stateLock:Ljava/lang/Object;
            invokevirtual java.lang.Object.wait:()V
        21: .line 434
            goto 23
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
        22: pop
        23: .line 431
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.batik.util.RunnableQueue.state:Lorg/apache/batik/util/RunnableQueue$RunnableQueueState;
            getstatic org.apache.batik.util.RunnableQueue.SUSPENDING:Lorg/apache/batik/util/RunnableQueue$RunnableQueueState;
            if_acmpeq 20
        24: .line 410
      StackMap locals:
      StackMap stack:
            aload 2
            monitorexit
        25: goto 28
      StackMap locals:
      StackMap stack: java.lang.Throwable
        26: aload 2
            monitorexit
        27: athrow
        28: .line 438
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean waitTillSuspended
        end local 0 // org.apache.batik.util.RunnableQueue this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   29     0               this  Lorg/apache/batik/util/RunnableQueue;
            0   29     1  waitTillSuspended  Z
      Exception table:
        from    to  target  type
          13    15      16  any
          16    17      16  any
          20    21      22  Class java.lang.InterruptedException
           5     9      26  any
          10    25      26  any
          26    27      26  any
    MethodParameters:
                   Name  Flags
      waitTillSuspended  

  public void resumeExecution();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.apache.batik.util.RunnableQueue this
         0: .line 446
            aload 0 /* this */
            getfield org.apache.batik.util.RunnableQueue.runnableQueueThread:Lorg/apache/batik/util/HaltingThread;
            ifnonnull 4
         1: .line 447
            new java.lang.IllegalStateException
            dup
         2: .line 448
            ldc "RunnableQueue not started or has exited"
         3: .line 447
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 451
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.batik.util.RunnableQueue.stateLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         5: .line 452
            aload 0 /* this */
            iconst_1
            putfield org.apache.batik.util.RunnableQueue.wasResumed:Z
         6: .line 454
            aload 0 /* this */
            getfield org.apache.batik.util.RunnableQueue.state:Lorg/apache/batik/util/RunnableQueue$RunnableQueueState;
            getstatic org.apache.batik.util.RunnableQueue.RUNNING:Lorg/apache/batik/util/RunnableQueue$RunnableQueueState;
            if_acmpeq 9
         7: .line 455
            aload 0 /* this */
            getstatic org.apache.batik.util.RunnableQueue.RUNNING:Lorg/apache/batik/util/RunnableQueue$RunnableQueueState;
            putfield org.apache.batik.util.RunnableQueue.state:Lorg/apache/batik/util/RunnableQueue$RunnableQueueState;
         8: .line 456
            aload 0 /* this */
            getfield org.apache.batik.util.RunnableQueue.stateLock:Ljava/lang/Object;
            invokevirtual java.lang.Object.notifyAll:()V
         9: .line 451
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 1
            monitorexit
        10: goto 13
      StackMap locals:
      StackMap stack: java.lang.Throwable
        11: aload 1
            monitorexit
        12: athrow
        13: .line 459
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.apache.batik.util.RunnableQueue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0  this  Lorg/apache/batik/util/RunnableQueue;
      Exception table:
        from    to  target  type
           5    10      11  any
          11    12      11  any

  public java.lang.Object getIteratorLock();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.batik.util.RunnableQueue this
         0: .line 466
            aload 0 /* this */
            getfield org.apache.batik.util.RunnableQueue.list:Lorg/apache/batik/util/DoublyLinkedList;
            areturn
        end local 0 // org.apache.batik.util.RunnableQueue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/batik/util/RunnableQueue;

  public java.util.Iterator iterator();
    descriptor: ()Ljava/util/Iterator;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.batik.util.RunnableQueue this
         0: .line 473
            new org.apache.batik.util.RunnableQueue$1
            dup
            aload 0 /* this */
            invokespecial org.apache.batik.util.RunnableQueue$1.<init>:(Lorg/apache/batik/util/RunnableQueue;)V
            areturn
        end local 0 // org.apache.batik.util.RunnableQueue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/batik/util/RunnableQueue;

  public synchronized void setRunHandler(org.apache.batik.util.RunnableQueue$RunHandler);
    descriptor: (Lorg/apache/batik/util/RunnableQueue$RunHandler;)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.batik.util.RunnableQueue this
        start local 1 // org.apache.batik.util.RunnableQueue$RunHandler rh
         0: .line 507
            aload 0 /* this */
            aload 1 /* rh */
            putfield org.apache.batik.util.RunnableQueue.runHandler:Lorg/apache/batik/util/RunnableQueue$RunHandler;
         1: .line 508
            return
        end local 1 // org.apache.batik.util.RunnableQueue$RunHandler rh
        end local 0 // org.apache.batik.util.RunnableQueue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/batik/util/RunnableQueue;
            0    2     1    rh  Lorg/apache/batik/util/RunnableQueue$RunHandler;
    MethodParameters:
      Name  Flags
      rh    

  public synchronized org.apache.batik.util.RunnableQueue$RunHandler getRunHandler();
    descriptor: ()Lorg/apache/batik/util/RunnableQueue$RunHandler;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.batik.util.RunnableQueue this
         0: .line 514
            aload 0 /* this */
            getfield org.apache.batik.util.RunnableQueue.runHandler:Lorg/apache/batik/util/RunnableQueue$RunHandler;
            areturn
        end local 0 // org.apache.batik.util.RunnableQueue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/batik/util/RunnableQueue;

  public void setIdleRunnable(org.apache.batik.util.RunnableQueue$IdleRunnable);
    descriptor: (Lorg/apache/batik/util/RunnableQueue$IdleRunnable;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.apache.batik.util.RunnableQueue this
        start local 1 // org.apache.batik.util.RunnableQueue$IdleRunnable r
         0: .line 521
            aload 0 /* this */
            getfield org.apache.batik.util.RunnableQueue.list:Lorg/apache/batik/util/DoublyLinkedList;
            dup
            astore 2
            monitorenter
         1: .line 522
            aload 0 /* this */
            aload 1 /* r */
            putfield org.apache.batik.util.RunnableQueue.idleRunnable:Lorg/apache/batik/util/RunnableQueue$IdleRunnable;
         2: .line 523
            aload 0 /* this */
            lconst_0
            putfield org.apache.batik.util.RunnableQueue.idleRunnableWaitTime:J
         3: .line 524
            aload 0 /* this */
            getfield org.apache.batik.util.RunnableQueue.list:Lorg/apache/batik/util/DoublyLinkedList;
            invokevirtual java.lang.Object.notify:()V
         4: .line 521
            aload 2
            monitorexit
         5: goto 8
      StackMap locals: org.apache.batik.util.RunnableQueue org.apache.batik.util.RunnableQueue$IdleRunnable org.apache.batik.util.DoublyLinkedList
      StackMap stack: java.lang.Throwable
         6: aload 2
            monitorexit
         7: athrow
         8: .line 526
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.apache.batik.util.RunnableQueue$IdleRunnable r
        end local 0 // org.apache.batik.util.RunnableQueue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lorg/apache/batik/util/RunnableQueue;
            0    9     1     r  Lorg/apache/batik/util/RunnableQueue$IdleRunnable;
      Exception table:
        from    to  target  type
           1     5       6  any
           6     7       6  any
    MethodParameters:
      Name  Flags
      r     

  protected synchronized void executionSuspended();
    descriptor: ()V
    flags: (0x0024) ACC_PROTECTED, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.batik.util.RunnableQueue this
         0: .line 534
            aload 0 /* this */
            getfield org.apache.batik.util.RunnableQueue.runHandler:Lorg/apache/batik/util/RunnableQueue$RunHandler;
            ifnull 2
         1: .line 535
            aload 0 /* this */
            getfield org.apache.batik.util.RunnableQueue.runHandler:Lorg/apache/batik/util/RunnableQueue$RunHandler;
            aload 0 /* this */
            invokeinterface org.apache.batik.util.RunnableQueue$RunHandler.executionSuspended:(Lorg/apache/batik/util/RunnableQueue;)V
         2: .line 537
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.apache.batik.util.RunnableQueue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/batik/util/RunnableQueue;

  protected synchronized void executionResumed();
    descriptor: ()V
    flags: (0x0024) ACC_PROTECTED, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.batik.util.RunnableQueue this
         0: .line 545
            aload 0 /* this */
            getfield org.apache.batik.util.RunnableQueue.runHandler:Lorg/apache/batik/util/RunnableQueue$RunHandler;
            ifnull 2
         1: .line 546
            aload 0 /* this */
            getfield org.apache.batik.util.RunnableQueue.runHandler:Lorg/apache/batik/util/RunnableQueue$RunHandler;
            aload 0 /* this */
            invokeinterface org.apache.batik.util.RunnableQueue$RunHandler.executionResumed:(Lorg/apache/batik/util/RunnableQueue;)V
         2: .line 548
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.apache.batik.util.RunnableQueue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/batik/util/RunnableQueue;

  protected synchronized void runnableStart(java.lang.Runnable);
    descriptor: (Ljava/lang/Runnable;)V
    flags: (0x0024) ACC_PROTECTED, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.apache.batik.util.RunnableQueue this
        start local 1 // java.lang.Runnable rable
         0: .line 556
            aload 0 /* this */
            getfield org.apache.batik.util.RunnableQueue.runHandler:Lorg/apache/batik/util/RunnableQueue$RunHandler;
            ifnull 2
         1: .line 557
            aload 0 /* this */
            getfield org.apache.batik.util.RunnableQueue.runHandler:Lorg/apache/batik/util/RunnableQueue$RunHandler;
            aload 0 /* this */
            aload 1 /* rable */
            invokeinterface org.apache.batik.util.RunnableQueue$RunHandler.runnableStart:(Lorg/apache/batik/util/RunnableQueue;Ljava/lang/Runnable;)V
         2: .line 559
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Runnable rable
        end local 0 // org.apache.batik.util.RunnableQueue this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lorg/apache/batik/util/RunnableQueue;
            0    3     1  rable  Ljava/lang/Runnable;
    MethodParameters:
       Name  Flags
      rable  

  protected synchronized void runnableInvoked(java.lang.Runnable);
    descriptor: (Ljava/lang/Runnable;)V
    flags: (0x0024) ACC_PROTECTED, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.apache.batik.util.RunnableQueue this
        start local 1 // java.lang.Runnable rable
         0: .line 567
            aload 0 /* this */
            getfield org.apache.batik.util.RunnableQueue.runHandler:Lorg/apache/batik/util/RunnableQueue$RunHandler;
            ifnull 2
         1: .line 568
            aload 0 /* this */
            getfield org.apache.batik.util.RunnableQueue.runHandler:Lorg/apache/batik/util/RunnableQueue$RunHandler;
            aload 0 /* this */
            aload 1 /* rable */
            invokeinterface org.apache.batik.util.RunnableQueue$RunHandler.runnableInvoked:(Lorg/apache/batik/util/RunnableQueue;Ljava/lang/Runnable;)V
         2: .line 570
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Runnable rable
        end local 0 // org.apache.batik.util.RunnableQueue this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lorg/apache/batik/util/RunnableQueue;
            0    3     1  rable  Ljava/lang/Runnable;
    MethodParameters:
       Name  Flags
      rable  
}
SourceFile: "RunnableQueue.java"
NestMembers:
  org.apache.batik.util.RunnableQueue$1  org.apache.batik.util.RunnableQueue$IdleRunnable  org.apache.batik.util.RunnableQueue$Link  org.apache.batik.util.RunnableQueue$LockableLink  org.apache.batik.util.RunnableQueue$RunHandler  org.apache.batik.util.RunnableQueue$RunHandlerAdapter  org.apache.batik.util.RunnableQueue$RunnableQueueState
InnerClasses:
  public Node = org.apache.batik.util.DoublyLinkedList$Node of org.apache.batik.util.DoublyLinkedList
  org.apache.batik.util.RunnableQueue$1
  public abstract IdleRunnable = org.apache.batik.util.RunnableQueue$IdleRunnable of org.apache.batik.util.RunnableQueue
  protected Link = org.apache.batik.util.RunnableQueue$Link of org.apache.batik.util.RunnableQueue
  protected LockableLink = org.apache.batik.util.RunnableQueue$LockableLink of org.apache.batik.util.RunnableQueue
  public abstract RunHandler = org.apache.batik.util.RunnableQueue$RunHandler of org.apache.batik.util.RunnableQueue
  public RunHandlerAdapter = org.apache.batik.util.RunnableQueue$RunHandlerAdapter of org.apache.batik.util.RunnableQueue
  public final RunnableQueueState = org.apache.batik.util.RunnableQueue$RunnableQueueState of org.apache.batik.util.RunnableQueue