class java.awt.WaitDispatchSupport implements java.awt.SecondaryLoop
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: java.awt.WaitDispatchSupport
  super_class: java.lang.Object
{
  private static final sun.util.logging.PlatformLogger log;
    descriptor: Lsun/util/logging/PlatformLogger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private java.awt.EventDispatchThread dispatchThread;
    descriptor: Ljava/awt/EventDispatchThread;
    flags: (0x0002) ACC_PRIVATE

  private java.awt.EventFilter filter;
    descriptor: Ljava/awt/EventFilter;
    flags: (0x0002) ACC_PRIVATE

  private volatile java.awt.Conditional extCondition;
    descriptor: Ljava/awt/Conditional;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile java.awt.Conditional condition;
    descriptor: Ljava/awt/Conditional;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

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

  private static java.util.Timer timer;
    descriptor: Ljava/util/Timer;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private java.util.TimerTask timerTask;
    descriptor: Ljava/util/TimerTask;
    flags: (0x0002) ACC_PRIVATE

  private java.util.concurrent.atomic.AtomicBoolean keepBlockingEDT;
    descriptor: Ljava/util/concurrent/atomic/AtomicBoolean;
    flags: (0x0002) ACC_PRIVATE

  private java.util.concurrent.atomic.AtomicBoolean keepBlockingCT;
    descriptor: Ljava/util/concurrent/atomic/AtomicBoolean;
    flags: (0x0002) ACC_PRIVATE

  private java.util.concurrent.atomic.AtomicBoolean afterExit;
    descriptor: Ljava/util/concurrent/atomic/AtomicBoolean;
    flags: (0x0002) ACC_PRIVATE

  private final java.lang.Runnable wakingRunnable;
    descriptor: Ljava/lang/Runnable;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 51
            ldc "java.awt.event.WaitDispatchSupport"
            invokestatic sun.util.logging.PlatformLogger.getLogger:(Ljava/lang/String;)Lsun/util/logging/PlatformLogger;
         1: .line 50
            putstatic java.awt.WaitDispatchSupport.log:Lsun/util/logging/PlatformLogger;
         2: .line 61
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static synchronized void initializeTimer();
    descriptor: ()V
    flags: (0x002a) ACC_PRIVATE, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=4, locals=0, args_size=0
         0: .line 71
            getstatic java.awt.WaitDispatchSupport.timer:Ljava/util/Timer;
            ifnonnull 2
         1: .line 72
            new java.util.Timer
            dup
            ldc "AWT-WaitDispatchSupport-Timer"
            iconst_1
            invokespecial java.util.Timer.<init>:(Ljava/lang/String;Z)V
            putstatic java.awt.WaitDispatchSupport.timer:Ljava/util/Timer;
         2: .line 74
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(java.awt.EventDispatchThread);
    descriptor: (Ljava/awt/EventDispatchThread;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.awt.WaitDispatchSupport this
        start local 1 // java.awt.EventDispatchThread dispatchThread
         0: .line 86
            aload 0 /* this */
            aload 1 /* dispatchThread */
            aconst_null
            invokespecial java.awt.WaitDispatchSupport.<init>:(Ljava/awt/EventDispatchThread;Ljava/awt/Conditional;)V
         1: .line 87
            return
        end local 1 // java.awt.EventDispatchThread dispatchThread
        end local 0 // java.awt.WaitDispatchSupport this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Ljava/awt/WaitDispatchSupport;
            0    2     1  dispatchThread  Ljava/awt/EventDispatchThread;
    MethodParameters:
                Name  Flags
      dispatchThread  

  public void <init>(java.awt.EventDispatchThread, java.awt.Conditional);
    descriptor: (Ljava/awt/EventDispatchThread;Ljava/awt/Conditional;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // java.awt.WaitDispatchSupport this
        start local 1 // java.awt.EventDispatchThread dispatchThread
        start local 2 // java.awt.Conditional extCond
         0: .line 100
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 66
            aload 0 /* this */
            new java.util.concurrent.atomic.AtomicBoolean
            dup
            iconst_0
            invokespecial java.util.concurrent.atomic.AtomicBoolean.<init>:(Z)V
            putfield java.awt.WaitDispatchSupport.keepBlockingEDT:Ljava/util/concurrent/atomic/AtomicBoolean;
         2: .line 67
            aload 0 /* this */
            new java.util.concurrent.atomic.AtomicBoolean
            dup
            iconst_0
            invokespecial java.util.concurrent.atomic.AtomicBoolean.<init>:(Z)V
            putfield java.awt.WaitDispatchSupport.keepBlockingCT:Ljava/util/concurrent/atomic/AtomicBoolean;
         3: .line 68
            aload 0 /* this */
            new java.util.concurrent.atomic.AtomicBoolean
            dup
            iconst_0
            invokespecial java.util.concurrent.atomic.AtomicBoolean.<init>:(Z)V
            putfield java.awt.WaitDispatchSupport.afterExit:Ljava/util/concurrent/atomic/AtomicBoolean;
         4: .line 310
            aload 0 /* this */
            new java.awt.WaitDispatchSupport$1
            dup
            aload 0 /* this */
            invokespecial java.awt.WaitDispatchSupport$1.<init>:(Ljava/awt/WaitDispatchSupport;)V
            putfield java.awt.WaitDispatchSupport.wakingRunnable:Ljava/lang/Runnable;
         5: .line 103
            aload 1 /* dispatchThread */
            ifnonnull 7
         6: .line 104
            new java.lang.IllegalArgumentException
            dup
            ldc "The dispatchThread can not be null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 107
      StackMap locals: java.awt.WaitDispatchSupport java.awt.EventDispatchThread java.awt.Conditional
      StackMap stack:
            aload 0 /* this */
            aload 1 /* dispatchThread */
            putfield java.awt.WaitDispatchSupport.dispatchThread:Ljava/awt/EventDispatchThread;
         8: .line 108
            aload 0 /* this */
            aload 2 /* extCond */
            putfield java.awt.WaitDispatchSupport.extCondition:Ljava/awt/Conditional;
         9: .line 109
            aload 0 /* this */
            new java.awt.WaitDispatchSupport$2
            dup
            aload 0 /* this */
            invokespecial java.awt.WaitDispatchSupport$2.<init>:(Ljava/awt/WaitDispatchSupport;)V
            putfield java.awt.WaitDispatchSupport.condition:Ljava/awt/Conditional;
        10: .line 128
            return
        end local 2 // java.awt.Conditional extCond
        end local 1 // java.awt.EventDispatchThread dispatchThread
        end local 0 // java.awt.WaitDispatchSupport this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   11     0            this  Ljava/awt/WaitDispatchSupport;
            0   11     1  dispatchThread  Ljava/awt/EventDispatchThread;
            0   11     2         extCond  Ljava/awt/Conditional;
    MethodParameters:
                Name  Flags
      dispatchThread  
      extCond         

  public void <init>(java.awt.EventDispatchThread, java.awt.Conditional, java.awt.EventFilter, long);
    descriptor: (Ljava/awt/EventDispatchThread;Ljava/awt/Conditional;Ljava/awt/EventFilter;J)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=5
        start local 0 // java.awt.WaitDispatchSupport this
        start local 1 // java.awt.EventDispatchThread dispatchThread
        start local 2 // java.awt.Conditional extCondition
        start local 3 // java.awt.EventFilter filter
        start local 4 // long interval
         0: .line 153
            aload 0 /* this */
            aload 1 /* dispatchThread */
            aload 2 /* extCondition */
            invokespecial java.awt.WaitDispatchSupport.<init>:(Ljava/awt/EventDispatchThread;Ljava/awt/Conditional;)V
         1: .line 154
            aload 0 /* this */
            aload 3 /* filter */
            putfield java.awt.WaitDispatchSupport.filter:Ljava/awt/EventFilter;
         2: .line 155
            lload 4 /* interval */
            lconst_0
            lcmp
            ifge 4
         3: .line 156
            new java.lang.IllegalArgumentException
            dup
            ldc "The interval value must be >= 0"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 158
      StackMap locals: java.awt.WaitDispatchSupport java.awt.EventDispatchThread java.awt.Conditional java.awt.EventFilter long
      StackMap stack:
            aload 0 /* this */
            lload 4 /* interval */
            putfield java.awt.WaitDispatchSupport.interval:J
         5: .line 159
            lload 4 /* interval */
            lconst_0
            lcmp
            ifeq 7
         6: .line 160
            invokestatic java.awt.WaitDispatchSupport.initializeTimer:()V
         7: .line 162
      StackMap locals:
      StackMap stack:
            return
        end local 4 // long interval
        end local 3 // java.awt.EventFilter filter
        end local 2 // java.awt.Conditional extCondition
        end local 1 // java.awt.EventDispatchThread dispatchThread
        end local 0 // java.awt.WaitDispatchSupport this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    8     0            this  Ljava/awt/WaitDispatchSupport;
            0    8     1  dispatchThread  Ljava/awt/EventDispatchThread;
            0    8     2    extCondition  Ljava/awt/Conditional;
            0    8     3          filter  Ljava/awt/EventFilter;
            0    8     4        interval  J
    MethodParameters:
                Name  Flags
      dispatchThread  
      extCondition    
      filter          
      interval        

  public boolean enter();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=9, args_size=1
        start local 0 // java.awt.WaitDispatchSupport this
         0: .line 169
            getstatic java.awt.WaitDispatchSupport.log:Lsun/util/logging/PlatformLogger;
            getstatic sun.util.logging.PlatformLogger$Level.FINE:Lsun/util/logging/PlatformLogger$Level;
            invokevirtual sun.util.logging.PlatformLogger.isLoggable:(Lsun/util/logging/PlatformLogger$Level;)Z
            ifeq 4
         1: .line 170
            getstatic java.awt.WaitDispatchSupport.log:Lsun/util/logging/PlatformLogger;
            new java.lang.StringBuilder
            dup
            ldc "enter(): blockingEDT="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield java.awt.WaitDispatchSupport.keepBlockingEDT:Ljava/util/concurrent/atomic/AtomicBoolean;
            invokevirtual java.util.concurrent.atomic.AtomicBoolean.get:()Z
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
         2: .line 171
            ldc ", blockingCT="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield java.awt.WaitDispatchSupport.keepBlockingCT:Ljava/util/concurrent/atomic/AtomicBoolean;
            invokevirtual java.util.concurrent.atomic.AtomicBoolean.get:()Z
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         3: .line 170
            invokevirtual sun.util.logging.PlatformLogger.fine:(Ljava/lang/String;)V
         4: .line 174
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.awt.WaitDispatchSupport.keepBlockingEDT:Ljava/util/concurrent/atomic/AtomicBoolean;
            iconst_0
            iconst_1
            invokevirtual java.util.concurrent.atomic.AtomicBoolean.compareAndSet:(ZZ)Z
            ifne 7
         5: .line 175
            getstatic java.awt.WaitDispatchSupport.log:Lsun/util/logging/PlatformLogger;
            ldc "The secondary loop is already running, aborting"
            invokevirtual sun.util.logging.PlatformLogger.fine:(Ljava/lang/String;)V
         6: .line 176
            iconst_0
            ireturn
         7: .line 179
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.awt.WaitDispatchSupport.afterExit:Ljava/util/concurrent/atomic/AtomicBoolean;
            invokevirtual java.util.concurrent.atomic.AtomicBoolean.get:()Z
            ifeq 13
         8: .line 180
            getstatic java.awt.WaitDispatchSupport.log:Lsun/util/logging/PlatformLogger;
            ldc "Exit was called already, aborting"
            invokevirtual sun.util.logging.PlatformLogger.fine:(Ljava/lang/String;)V
         9: .line 284
            aload 0 /* this */
            getfield java.awt.WaitDispatchSupport.keepBlockingEDT:Ljava/util/concurrent/atomic/AtomicBoolean;
            iconst_0
            invokevirtual java.util.concurrent.atomic.AtomicBoolean.set:(Z)V
        10: .line 285
            aload 0 /* this */
            getfield java.awt.WaitDispatchSupport.keepBlockingCT:Ljava/util/concurrent/atomic/AtomicBoolean;
            iconst_0
            invokevirtual java.util.concurrent.atomic.AtomicBoolean.set:(Z)V
        11: .line 286
            aload 0 /* this */
            getfield java.awt.WaitDispatchSupport.afterExit:Ljava/util/concurrent/atomic/AtomicBoolean;
            iconst_0
            invokevirtual java.util.concurrent.atomic.AtomicBoolean.set:(Z)V
        12: .line 181
            iconst_0
            ireturn
        13: .line 184
      StackMap locals:
      StackMap stack:
            new java.awt.WaitDispatchSupport$3
            dup
            aload 0 /* this */
            invokespecial java.awt.WaitDispatchSupport$3.<init>:(Ljava/awt/WaitDispatchSupport;)V
            astore 1 /* run */
        start local 1 // java.lang.Runnable run
        14: .line 199
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            astore 2 /* currentThread */
        start local 2 // java.lang.Thread currentThread
        15: .line 200
            aload 2 /* currentThread */
            aload 0 /* this */
            getfield java.awt.WaitDispatchSupport.dispatchThread:Ljava/awt/EventDispatchThread;
            if_acmpne 32
        16: .line 201
            getstatic java.awt.WaitDispatchSupport.log:Lsun/util/logging/PlatformLogger;
            getstatic sun.util.logging.PlatformLogger$Level.FINEST:Lsun/util/logging/PlatformLogger$Level;
            invokevirtual sun.util.logging.PlatformLogger.isLoggable:(Lsun/util/logging/PlatformLogger$Level;)Z
            ifeq 18
        17: .line 202
            getstatic java.awt.WaitDispatchSupport.log:Lsun/util/logging/PlatformLogger;
            new java.lang.StringBuilder
            dup
            ldc "On dispatch thread: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield java.awt.WaitDispatchSupport.dispatchThread:Ljava/awt/EventDispatchThread;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.util.logging.PlatformLogger.finest:(Ljava/lang/String;)V
        18: .line 204
      StackMap locals: java.lang.Runnable java.lang.Thread
      StackMap stack:
            aload 0 /* this */
            getfield java.awt.WaitDispatchSupport.interval:J
            lconst_0
            lcmp
            ifeq 24
        19: .line 205
            getstatic java.awt.WaitDispatchSupport.log:Lsun/util/logging/PlatformLogger;
            getstatic sun.util.logging.PlatformLogger$Level.FINEST:Lsun/util/logging/PlatformLogger$Level;
            invokevirtual sun.util.logging.PlatformLogger.isLoggable:(Lsun/util/logging/PlatformLogger$Level;)Z
            ifeq 21
        20: .line 206
            getstatic java.awt.WaitDispatchSupport.log:Lsun/util/logging/PlatformLogger;
            new java.lang.StringBuilder
            dup
            ldc "scheduling the timer for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield java.awt.WaitDispatchSupport.interval:J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc " ms"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.util.logging.PlatformLogger.finest:(Ljava/lang/String;)V
        21: .line 208
      StackMap locals:
      StackMap stack:
            getstatic java.awt.WaitDispatchSupport.timer:Ljava/util/Timer;
            aload 0 /* this */
            new java.awt.WaitDispatchSupport$4
            dup
            aload 0 /* this */
            invokespecial java.awt.WaitDispatchSupport$4.<init>:(Ljava/awt/WaitDispatchSupport;)V
            dup_x1
            putfield java.awt.WaitDispatchSupport.timerTask:Ljava/util/TimerTask;
        22: .line 215
            aload 0 /* this */
            getfield java.awt.WaitDispatchSupport.interval:J
        23: .line 208
            invokevirtual java.util.Timer.schedule:(Ljava/util/TimerTask;J)V
        24: .line 220
      StackMap locals:
      StackMap stack:
            invokestatic java.awt.KeyboardFocusManager.getCurrentKeyboardFocusManager:()Ljava/awt/KeyboardFocusManager;
            invokevirtual java.awt.KeyboardFocusManager.getCurrentSequencedEvent:()Ljava/awt/SequencedEvent;
        25: .line 219
            astore 3 /* currentSE */
        start local 3 // java.awt.SequencedEvent currentSE
        26: .line 221
            aload 3 /* currentSE */
            ifnull 30
        27: .line 222
            getstatic java.awt.WaitDispatchSupport.log:Lsun/util/logging/PlatformLogger;
            getstatic sun.util.logging.PlatformLogger$Level.FINE:Lsun/util/logging/PlatformLogger$Level;
            invokevirtual sun.util.logging.PlatformLogger.isLoggable:(Lsun/util/logging/PlatformLogger$Level;)Z
            ifeq 29
        28: .line 223
            getstatic java.awt.WaitDispatchSupport.log:Lsun/util/logging/PlatformLogger;
            new java.lang.StringBuilder
            dup
            ldc "Dispose current SequencedEvent: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* currentSE */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.util.logging.PlatformLogger.fine:(Ljava/lang/String;)V
        29: .line 225
      StackMap locals: java.awt.SequencedEvent
      StackMap stack:
            aload 3 /* currentSE */
            invokevirtual java.awt.SequencedEvent.dispose:()V
        30: .line 233
      StackMap locals:
      StackMap stack:
            new java.awt.WaitDispatchSupport$5
            dup
            aload 0 /* this */
            aload 1 /* run */
            invokespecial java.awt.WaitDispatchSupport$5.<init>:(Ljava/awt/WaitDispatchSupport;Ljava/lang/Runnable;)V
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            pop
        end local 3 // java.awt.SequencedEvent currentSE
        31: .line 239
            goto 75
        32: .line 240
      StackMap locals:
      StackMap stack:
            getstatic java.awt.WaitDispatchSupport.log:Lsun/util/logging/PlatformLogger;
            getstatic sun.util.logging.PlatformLogger$Level.FINEST:Lsun/util/logging/PlatformLogger$Level;
            invokevirtual sun.util.logging.PlatformLogger.isLoggable:(Lsun/util/logging/PlatformLogger$Level;)Z
            ifeq 34
        33: .line 241
            getstatic java.awt.WaitDispatchSupport.log:Lsun/util/logging/PlatformLogger;
            new java.lang.StringBuilder
            dup
            ldc "On non-dispatch thread: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* currentThread */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.util.logging.PlatformLogger.finest:(Ljava/lang/String;)V
        34: .line 243
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.awt.WaitDispatchSupport.keepBlockingCT:Ljava/util/concurrent/atomic/AtomicBoolean;
            iconst_1
            invokevirtual java.util.concurrent.atomic.AtomicBoolean.set:(Z)V
        35: .line 244
            invokestatic java.awt.WaitDispatchSupport.getTreeLock:()Ljava/lang/Object;
            dup
            astore 3
            monitorenter
        36: .line 245
            aload 0 /* this */
            getfield java.awt.WaitDispatchSupport.afterExit:Ljava/util/concurrent/atomic/AtomicBoolean;
            invokevirtual java.util.concurrent.atomic.AtomicBoolean.get:()Z
            ifeq 41
            aload 3
            monitorexit
        37: .line 284
            aload 0 /* this */
            getfield java.awt.WaitDispatchSupport.keepBlockingEDT:Ljava/util/concurrent/atomic/AtomicBoolean;
            iconst_0
            invokevirtual java.util.concurrent.atomic.AtomicBoolean.set:(Z)V
        38: .line 285
            aload 0 /* this */
            getfield java.awt.WaitDispatchSupport.keepBlockingCT:Ljava/util/concurrent/atomic/AtomicBoolean;
            iconst_0
            invokevirtual java.util.concurrent.atomic.AtomicBoolean.set:(Z)V
        39: .line 286
            aload 0 /* this */
            getfield java.awt.WaitDispatchSupport.afterExit:Ljava/util/concurrent/atomic/AtomicBoolean;
            iconst_0
            invokevirtual java.util.concurrent.atomic.AtomicBoolean.set:(Z)V
        40: .line 245
            iconst_0
            ireturn
        41: .line 246
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield java.awt.WaitDispatchSupport.filter:Ljava/awt/EventFilter;
            ifnull 43
        42: .line 247
            aload 0 /* this */
            getfield java.awt.WaitDispatchSupport.dispatchThread:Ljava/awt/EventDispatchThread;
            aload 0 /* this */
            getfield java.awt.WaitDispatchSupport.filter:Ljava/awt/EventFilter;
            invokevirtual java.awt.EventDispatchThread.addEventFilter:(Ljava/awt/EventFilter;)V
        43: .line 250
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.awt.WaitDispatchSupport.dispatchThread:Ljava/awt/EventDispatchThread;
            invokevirtual java.awt.EventDispatchThread.getEventQueue:()Ljava/awt/EventQueue;
            astore 4 /* eq */
        start local 4 // java.awt.EventQueue eq
        44: .line 251
            aload 4 /* eq */
            new sun.awt.PeerEvent
            dup
            aload 0 /* this */
            aload 1 /* run */
            lconst_1
            invokespecial sun.awt.PeerEvent.<init>:(Ljava/lang/Object;Ljava/lang/Runnable;J)V
            invokevirtual java.awt.EventQueue.postEvent:(Ljava/awt/AWTEvent;)V
        45: .line 252
            aload 0 /* this */
            getfield java.awt.WaitDispatchSupport.interval:J
            lconst_0
            lcmp
            ifle 55
        46: .line 253
            invokestatic java.lang.System.currentTimeMillis:()J
            lstore 5 /* currTime */
        start local 5 // long currTime
        47: .line 254
            goto 49
        48: .line 258
      StackMap locals: java.awt.EventQueue long
      StackMap stack:
            invokestatic java.awt.WaitDispatchSupport.getTreeLock:()Ljava/lang/Object;
            aload 0 /* this */
            getfield java.awt.WaitDispatchSupport.interval:J
            invokevirtual java.lang.Object.wait:(J)V
        49: .line 254
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.awt.WaitDispatchSupport.keepBlockingCT:Ljava/util/concurrent/atomic/AtomicBoolean;
            invokevirtual java.util.concurrent.atomic.AtomicBoolean.get:()Z
            ifeq 57
        50: .line 255
            aload 0 /* this */
            getfield java.awt.WaitDispatchSupport.extCondition:Ljava/awt/Conditional;
            ifnull 51
            aload 0 /* this */
            getfield java.awt.WaitDispatchSupport.extCondition:Ljava/awt/Conditional;
            invokeinterface java.awt.Conditional.evaluate:()Z
            ifeq 57
        51: .line 256
      StackMap locals:
      StackMap stack:
            lload 5 /* currTime */
            aload 0 /* this */
            getfield java.awt.WaitDispatchSupport.interval:J
            ladd
            invokestatic java.lang.System.currentTimeMillis:()J
        52: .line 254
            lcmp
            ifgt 48
        end local 5 // long currTime
        53: .line 260
            goto 57
        54: .line 264
      StackMap locals:
      StackMap stack:
            invokestatic java.awt.WaitDispatchSupport.getTreeLock:()Ljava/lang/Object;
            invokevirtual java.lang.Object.wait:()V
        55: .line 261
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.awt.WaitDispatchSupport.keepBlockingCT:Ljava/util/concurrent/atomic/AtomicBoolean;
            invokevirtual java.util.concurrent.atomic.AtomicBoolean.get:()Z
            ifeq 57
        56: .line 262
            aload 0 /* this */
            getfield java.awt.WaitDispatchSupport.extCondition:Ljava/awt/Conditional;
            ifnull 54
            aload 0 /* this */
            getfield java.awt.WaitDispatchSupport.extCondition:Ljava/awt/Conditional;
            invokeinterface java.awt.Conditional.evaluate:()Z
            ifne 54
        57: .line 267
      StackMap locals:
      StackMap stack:
            getstatic java.awt.WaitDispatchSupport.log:Lsun/util/logging/PlatformLogger;
            getstatic sun.util.logging.PlatformLogger$Level.FINE:Lsun/util/logging/PlatformLogger$Level;
            invokevirtual sun.util.logging.PlatformLogger.isLoggable:(Lsun/util/logging/PlatformLogger$Level;)Z
            ifeq 69
        58: .line 268
            getstatic java.awt.WaitDispatchSupport.log:Lsun/util/logging/PlatformLogger;
            new java.lang.StringBuilder
            dup
            ldc "waitDone "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield java.awt.WaitDispatchSupport.keepBlockingEDT:Ljava/util/concurrent/atomic/AtomicBoolean;
            invokevirtual java.util.concurrent.atomic.AtomicBoolean.get:()Z
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield java.awt.WaitDispatchSupport.keepBlockingCT:Ljava/util/concurrent/atomic/AtomicBoolean;
            invokevirtual java.util.concurrent.atomic.AtomicBoolean.get:()Z
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.util.logging.PlatformLogger.fine:(Ljava/lang/String;)V
        end local 4 // java.awt.EventQueue eq
        59: .line 270
            goto 69
      StackMap locals: java.awt.WaitDispatchSupport java.lang.Runnable java.lang.Thread java.lang.Object
      StackMap stack: java.lang.InterruptedException
        60: astore 4 /* e */
        start local 4 // java.lang.InterruptedException e
        61: .line 271
            getstatic java.awt.WaitDispatchSupport.log:Lsun/util/logging/PlatformLogger;
            getstatic sun.util.logging.PlatformLogger$Level.FINE:Lsun/util/logging/PlatformLogger$Level;
            invokevirtual sun.util.logging.PlatformLogger.isLoggable:(Lsun/util/logging/PlatformLogger$Level;)Z
            ifeq 63
        62: .line 272
            getstatic java.awt.WaitDispatchSupport.log:Lsun/util/logging/PlatformLogger;
            new java.lang.StringBuilder
            dup
            ldc "Exception caught while waiting: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.util.logging.PlatformLogger.fine:(Ljava/lang/String;)V
        end local 4 // java.lang.InterruptedException e
        63: .line 275
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.awt.WaitDispatchSupport.filter:Ljava/awt/EventFilter;
            ifnull 71
        64: .line 276
            aload 0 /* this */
            getfield java.awt.WaitDispatchSupport.dispatchThread:Ljava/awt/EventDispatchThread;
            aload 0 /* this */
            getfield java.awt.WaitDispatchSupport.filter:Ljava/awt/EventFilter;
            invokevirtual java.awt.EventDispatchThread.removeEventFilter:(Ljava/awt/EventFilter;)V
            goto 71
        65: .line 274
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 7
        66: .line 275
            aload 0 /* this */
            getfield java.awt.WaitDispatchSupport.filter:Ljava/awt/EventFilter;
            ifnull 68
        67: .line 276
            aload 0 /* this */
            getfield java.awt.WaitDispatchSupport.dispatchThread:Ljava/awt/EventDispatchThread;
            aload 0 /* this */
            getfield java.awt.WaitDispatchSupport.filter:Ljava/awt/EventFilter;
            invokevirtual java.awt.EventDispatchThread.removeEventFilter:(Ljava/awt/EventFilter;)V
        68: .line 278
      StackMap locals: java.awt.WaitDispatchSupport java.lang.Runnable java.lang.Thread java.lang.Object top top top java.lang.Throwable
      StackMap stack:
            aload 7
            athrow
        69: .line 275
      StackMap locals: java.awt.WaitDispatchSupport java.lang.Runnable java.lang.Thread java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield java.awt.WaitDispatchSupport.filter:Ljava/awt/EventFilter;
            ifnull 71
        70: .line 276
            aload 0 /* this */
            getfield java.awt.WaitDispatchSupport.dispatchThread:Ljava/awt/EventDispatchThread;
            aload 0 /* this */
            getfield java.awt.WaitDispatchSupport.filter:Ljava/awt/EventFilter;
            invokevirtual java.awt.EventDispatchThread.removeEventFilter:(Ljava/awt/EventFilter;)V
        71: .line 244
      StackMap locals:
      StackMap stack:
            aload 3
            monitorexit
        72: goto 75
      StackMap locals:
      StackMap stack: java.lang.Throwable
        73: aload 3
            monitorexit
        74: athrow
        75: .line 284
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.awt.WaitDispatchSupport.keepBlockingEDT:Ljava/util/concurrent/atomic/AtomicBoolean;
            iconst_0
            invokevirtual java.util.concurrent.atomic.AtomicBoolean.set:(Z)V
        76: .line 285
            aload 0 /* this */
            getfield java.awt.WaitDispatchSupport.keepBlockingCT:Ljava/util/concurrent/atomic/AtomicBoolean;
            iconst_0
            invokevirtual java.util.concurrent.atomic.AtomicBoolean.set:(Z)V
        77: .line 286
            aload 0 /* this */
            getfield java.awt.WaitDispatchSupport.afterExit:Ljava/util/concurrent/atomic/AtomicBoolean;
            iconst_0
            invokevirtual java.util.concurrent.atomic.AtomicBoolean.set:(Z)V
        78: .line 281
            iconst_1
            ireturn
        end local 2 // java.lang.Thread currentThread
        end local 1 // java.lang.Runnable run
        79: .line 283
      StackMap locals: java.awt.WaitDispatchSupport
      StackMap stack: java.lang.Throwable
            astore 8
        80: .line 284
            aload 0 /* this */
            getfield java.awt.WaitDispatchSupport.keepBlockingEDT:Ljava/util/concurrent/atomic/AtomicBoolean;
            iconst_0
            invokevirtual java.util.concurrent.atomic.AtomicBoolean.set:(Z)V
        81: .line 285
            aload 0 /* this */
            getfield java.awt.WaitDispatchSupport.keepBlockingCT:Ljava/util/concurrent/atomic/AtomicBoolean;
            iconst_0
            invokevirtual java.util.concurrent.atomic.AtomicBoolean.set:(Z)V
        82: .line 286
            aload 0 /* this */
            getfield java.awt.WaitDispatchSupport.afterExit:Ljava/util/concurrent/atomic/AtomicBoolean;
            iconst_0
            invokevirtual java.util.concurrent.atomic.AtomicBoolean.set:(Z)V
        83: .line 287
            aload 8
            athrow
        end local 0 // java.awt.WaitDispatchSupport this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   84     0           this  Ljava/awt/WaitDispatchSupport;
           14   79     1            run  Ljava/lang/Runnable;
           15   79     2  currentThread  Ljava/lang/Thread;
           26   31     3      currentSE  Ljava/awt/SequencedEvent;
           44   59     4             eq  Ljava/awt/EventQueue;
           47   53     5       currTime  J
           61   63     4              e  Ljava/lang/InterruptedException;
      Exception table:
        from    to  target  type
          43    59      60  Class java.lang.InterruptedException
          43    63      65  any
          36    37      73  any
          41    72      73  any
          73    74      73  any
           7     9      79  any
          13    37      79  any
          41    75      79  any

  public boolean exit();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.awt.WaitDispatchSupport this
         0: .line 294
            getstatic java.awt.WaitDispatchSupport.log:Lsun/util/logging/PlatformLogger;
            getstatic sun.util.logging.PlatformLogger$Level.FINE:Lsun/util/logging/PlatformLogger$Level;
            invokevirtual sun.util.logging.PlatformLogger.isLoggable:(Lsun/util/logging/PlatformLogger$Level;)Z
            ifeq 4
         1: .line 295
            getstatic java.awt.WaitDispatchSupport.log:Lsun/util/logging/PlatformLogger;
            new java.lang.StringBuilder
            dup
            ldc "exit(): blockingEDT="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield java.awt.WaitDispatchSupport.keepBlockingEDT:Ljava/util/concurrent/atomic/AtomicBoolean;
            invokevirtual java.util.concurrent.atomic.AtomicBoolean.get:()Z
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
         2: .line 296
            ldc ", blockingCT="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield java.awt.WaitDispatchSupport.keepBlockingCT:Ljava/util/concurrent/atomic/AtomicBoolean;
            invokevirtual java.util.concurrent.atomic.AtomicBoolean.get:()Z
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         3: .line 295
            invokevirtual sun.util.logging.PlatformLogger.fine:(Ljava/lang/String;)V
         4: .line 298
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.awt.WaitDispatchSupport.afterExit:Ljava/util/concurrent/atomic/AtomicBoolean;
            iconst_1
            invokevirtual java.util.concurrent.atomic.AtomicBoolean.set:(Z)V
         5: .line 299
            aload 0 /* this */
            getfield java.awt.WaitDispatchSupport.keepBlockingEDT:Ljava/util/concurrent/atomic/AtomicBoolean;
            iconst_0
            invokevirtual java.util.concurrent.atomic.AtomicBoolean.getAndSet:(Z)Z
            ifeq 8
         6: .line 300
            aload 0 /* this */
            invokevirtual java.awt.WaitDispatchSupport.wakeupEDT:()V
         7: .line 301
            iconst_1
            ireturn
         8: .line 303
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 0 // java.awt.WaitDispatchSupport this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Ljava/awt/WaitDispatchSupport;

  private static final java.lang.Object getTreeLock();
    descriptor: ()Ljava/lang/Object;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Code:
      stack=1, locals=0, args_size=0
         0: .line 307
            getstatic java.awt.Component.LOCK:Ljava/lang/Object;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void wakeupEDT();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=2, args_size=1
        start local 0 // java.awt.WaitDispatchSupport this
         0: .line 322
            getstatic java.awt.WaitDispatchSupport.log:Lsun/util/logging/PlatformLogger;
            getstatic sun.util.logging.PlatformLogger$Level.FINEST:Lsun/util/logging/PlatformLogger$Level;
            invokevirtual sun.util.logging.PlatformLogger.isLoggable:(Lsun/util/logging/PlatformLogger$Level;)Z
            ifeq 2
         1: .line 323
            getstatic java.awt.WaitDispatchSupport.log:Lsun/util/logging/PlatformLogger;
            new java.lang.StringBuilder
            dup
            ldc "wakeupEDT(): EDT == "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield java.awt.WaitDispatchSupport.dispatchThread:Ljava/awt/EventDispatchThread;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.util.logging.PlatformLogger.finest:(Ljava/lang/String;)V
         2: .line 325
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.awt.WaitDispatchSupport.dispatchThread:Ljava/awt/EventDispatchThread;
            invokevirtual java.awt.EventDispatchThread.getEventQueue:()Ljava/awt/EventQueue;
            astore 1 /* eq */
        start local 1 // java.awt.EventQueue eq
         3: .line 326
            aload 1 /* eq */
            new sun.awt.PeerEvent
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield java.awt.WaitDispatchSupport.wakingRunnable:Ljava/lang/Runnable;
            lconst_1
            invokespecial sun.awt.PeerEvent.<init>:(Ljava/lang/Object;Ljava/lang/Runnable;J)V
            invokevirtual java.awt.EventQueue.postEvent:(Ljava/awt/AWTEvent;)V
         4: .line 327
            return
        end local 1 // java.awt.EventQueue eq
        end local 0 // java.awt.WaitDispatchSupport this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljava/awt/WaitDispatchSupport;
            3    5     1    eq  Ljava/awt/EventQueue;
}
SourceFile: "WaitDispatchSupport.java"
NestMembers:
  java.awt.WaitDispatchSupport$1  java.awt.WaitDispatchSupport$2  java.awt.WaitDispatchSupport$3  java.awt.WaitDispatchSupport$4  java.awt.WaitDispatchSupport$5
InnerClasses:
  java.awt.WaitDispatchSupport$1
  java.awt.WaitDispatchSupport$2
  java.awt.WaitDispatchSupport$3
  java.awt.WaitDispatchSupport$4
  java.awt.WaitDispatchSupport$5
  public final Level = sun.util.logging.PlatformLogger$Level of sun.util.logging.PlatformLogger