public class org.apache.lucene.index.MergePolicy$OneMergeProgress
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.lucene.index.MergePolicy$OneMergeProgress
  super_class: java.lang.Object
{
  private final java.util.concurrent.locks.ReentrantLock pauseLock;
    descriptor: Ljava/util/concurrent/locks/ReentrantLock;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.concurrent.locks.Condition pausing;
    descriptor: Ljava/util/concurrent/locks/Condition;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.EnumMap<org.apache.lucene.index.MergePolicy$OneMergeProgress$PauseReason, java.util.concurrent.atomic.AtomicLong> pauseTimesNS;
    descriptor: Ljava/util/EnumMap;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/EnumMap<Lorg/apache/lucene/index/MergePolicy$OneMergeProgress$PauseReason;Ljava/util/concurrent/atomic/AtomicLong;>;

  private volatile boolean aborted;
    descriptor: Z
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

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

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 85
            ldc Lorg/apache/lucene/index/MergePolicy;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic org.apache.lucene.index.MergePolicy$OneMergeProgress.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // org.apache.lucene.index.MergePolicy$OneMergeProgress this
         0: .line 114
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 96
            aload 0 /* this */
            new java.util.concurrent.locks.ReentrantLock
            dup
            invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
            putfield org.apache.lucene.index.MergePolicy$OneMergeProgress.pauseLock:Ljava/util/concurrent/locks/ReentrantLock;
         2: .line 97
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.lucene.index.MergePolicy$OneMergeProgress.pauseLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.newCondition:()Ljava/util/concurrent/locks/Condition;
            putfield org.apache.lucene.index.MergePolicy$OneMergeProgress.pausing:Ljava/util/concurrent/locks/Condition;
         3: .line 116
            aload 0 /* this */
            new java.util.EnumMap
            dup
            ldc Lorg/apache/lucene/index/MergePolicy$OneMergeProgress$PauseReason;
            invokespecial java.util.EnumMap.<init>:(Ljava/lang/Class;)V
            putfield org.apache.lucene.index.MergePolicy$OneMergeProgress.pauseTimesNS:Ljava/util/EnumMap;
         4: .line 117
            invokestatic org.apache.lucene.index.MergePolicy$OneMergeProgress$PauseReason.values:()[Lorg/apache/lucene/index/MergePolicy$OneMergeProgress$PauseReason;
            dup
            astore 4
            arraylength
            istore 3
            iconst_0
            istore 2
            goto 8
      StackMap locals: org.apache.lucene.index.MergePolicy$OneMergeProgress top int int org.apache.lucene.index.MergePolicy$OneMergeProgress$PauseReason[]
      StackMap stack:
         5: aload 4
            iload 2
            aaload
            astore 1 /* p */
        start local 1 // org.apache.lucene.index.MergePolicy$OneMergeProgress$PauseReason p
         6: .line 118
            aload 0 /* this */
            getfield org.apache.lucene.index.MergePolicy$OneMergeProgress.pauseTimesNS:Ljava/util/EnumMap;
            aload 1 /* p */
            new java.util.concurrent.atomic.AtomicLong
            dup
            invokespecial java.util.concurrent.atomic.AtomicLong.<init>:()V
            invokevirtual java.util.EnumMap.put:(Ljava/lang/Enum;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 1 // org.apache.lucene.index.MergePolicy$OneMergeProgress$PauseReason p
         7: .line 117
            iinc 2 1
      StackMap locals:
      StackMap stack:
         8: iload 2
            iload 3
            if_icmplt 5
         9: .line 120
            return
        end local 0 // org.apache.lucene.index.MergePolicy$OneMergeProgress this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lorg/apache/lucene/index/MergePolicy$OneMergeProgress;
            6    7     1     p  Lorg/apache/lucene/index/MergePolicy$OneMergeProgress$PauseReason;

  public void abort();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.lucene.index.MergePolicy$OneMergeProgress this
         0: .line 127
            aload 0 /* this */
            iconst_1
            putfield org.apache.lucene.index.MergePolicy$OneMergeProgress.aborted:Z
         1: .line 128
            aload 0 /* this */
            invokevirtual org.apache.lucene.index.MergePolicy$OneMergeProgress.wakeup:()V
         2: .line 129
            return
        end local 0 // org.apache.lucene.index.MergePolicy$OneMergeProgress this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/lucene/index/MergePolicy$OneMergeProgress;

  public boolean isAborted();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.lucene.index.MergePolicy$OneMergeProgress this
         0: .line 135
            aload 0 /* this */
            getfield org.apache.lucene.index.MergePolicy$OneMergeProgress.aborted:Z
            ireturn
        end local 0 // org.apache.lucene.index.MergePolicy$OneMergeProgress this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/lucene/index/MergePolicy$OneMergeProgress;

  public void pauseNanos(long, org.apache.lucene.index.MergePolicy$OneMergeProgress$PauseReason, java.util.function.BooleanSupplier);
    descriptor: (JLorg/apache/lucene/index/MergePolicy$OneMergeProgress$PauseReason;Ljava/util/function/BooleanSupplier;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=9, args_size=4
        start local 0 // org.apache.lucene.index.MergePolicy$OneMergeProgress this
        start local 1 // long pauseNanos
        start local 3 // org.apache.lucene.index.MergePolicy$OneMergeProgress$PauseReason reason
        start local 4 // java.util.function.BooleanSupplier condition
         0: .line 153
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            aload 0 /* this */
            getfield org.apache.lucene.index.MergePolicy$OneMergeProgress.owner:Ljava/lang/Thread;
            if_acmpeq 5
         1: .line 154
            new java.lang.RuntimeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Only the merge owner thread can call pauseNanos(). This thread: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         2: .line 155
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ", owner thread: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         3: .line 156
            aload 0 /* this */
            getfield org.apache.lucene.index.MergePolicy$OneMergeProgress.owner:Ljava/lang/Thread;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         4: .line 154
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 159
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.System.nanoTime:()J
            lstore 5 /* start */
        start local 5 // long start
         6: .line 160
            aload 0 /* this */
            getfield org.apache.lucene.index.MergePolicy$OneMergeProgress.pauseTimesNS:Ljava/util/EnumMap;
            aload 3 /* reason */
            invokevirtual java.util.EnumMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.concurrent.atomic.AtomicLong
            astore 7 /* timeUpdate */
        start local 7 // java.util.concurrent.atomic.AtomicLong timeUpdate
         7: .line 161
            aload 0 /* this */
            getfield org.apache.lucene.index.MergePolicy$OneMergeProgress.pauseLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         8: .line 163
            goto 10
         9: .line 164
      StackMap locals: long java.util.concurrent.atomic.AtomicLong
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.lucene.index.MergePolicy$OneMergeProgress.pausing:Ljava/util/concurrent/locks/Condition;
            lload 1 /* pauseNanos */
            invokeinterface java.util.concurrent.locks.Condition.awaitNanos:(J)J
            lstore 1 /* pauseNanos */
        10: .line 163
      StackMap locals:
      StackMap stack:
            lload 1 /* pauseNanos */
            lconst_0
            lcmp
            ifle 16
            aload 0 /* this */
            getfield org.apache.lucene.index.MergePolicy$OneMergeProgress.aborted:Z
            ifne 16
            aload 4 /* condition */
            invokeinterface java.util.function.BooleanSupplier.getAsBoolean:()Z
            ifne 9
        11: .line 166
            goto 16
      StackMap locals:
      StackMap stack: java.lang.Throwable
        12: astore 8
        13: .line 167
            aload 0 /* this */
            getfield org.apache.lucene.index.MergePolicy$OneMergeProgress.pauseLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        14: .line 168
            aload 7 /* timeUpdate */
            invokestatic java.lang.System.nanoTime:()J
            lload 5 /* start */
            lsub
            invokevirtual java.util.concurrent.atomic.AtomicLong.addAndGet:(J)J
            pop2
        15: .line 169
            aload 8
            athrow
        16: .line 167
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.lucene.index.MergePolicy$OneMergeProgress.pauseLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        17: .line 168
            aload 7 /* timeUpdate */
            invokestatic java.lang.System.nanoTime:()J
            lload 5 /* start */
            lsub
            invokevirtual java.util.concurrent.atomic.AtomicLong.addAndGet:(J)J
            pop2
        18: .line 170
            return
        end local 7 // java.util.concurrent.atomic.AtomicLong timeUpdate
        end local 5 // long start
        end local 4 // java.util.function.BooleanSupplier condition
        end local 3 // org.apache.lucene.index.MergePolicy$OneMergeProgress$PauseReason reason
        end local 1 // long pauseNanos
        end local 0 // org.apache.lucene.index.MergePolicy$OneMergeProgress this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   19     0        this  Lorg/apache/lucene/index/MergePolicy$OneMergeProgress;
            0   19     1  pauseNanos  J
            0   19     3      reason  Lorg/apache/lucene/index/MergePolicy$OneMergeProgress$PauseReason;
            0   19     4   condition  Ljava/util/function/BooleanSupplier;
            6   19     5       start  J
            7   19     7  timeUpdate  Ljava/util/concurrent/atomic/AtomicLong;
      Exception table:
        from    to  target  type
           8    12      12  any
    Exceptions:
      throws java.lang.InterruptedException
    MethodParameters:
            Name  Flags
      pauseNanos  
      reason      
      condition   

  public void wakeup();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // org.apache.lucene.index.MergePolicy$OneMergeProgress this
         0: .line 176
            aload 0 /* this */
            getfield org.apache.lucene.index.MergePolicy$OneMergeProgress.pauseLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 178
            aload 0 /* this */
            getfield org.apache.lucene.index.MergePolicy$OneMergeProgress.pausing:Ljava/util/concurrent/locks/Condition;
            invokeinterface java.util.concurrent.locks.Condition.signalAll:()V
         2: .line 179
            goto 6
      StackMap locals:
      StackMap stack: java.lang.Throwable
         3: astore 1
         4: .line 180
            aload 0 /* this */
            getfield org.apache.lucene.index.MergePolicy$OneMergeProgress.pauseLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         5: .line 181
            aload 1
            athrow
         6: .line 180
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.lucene.index.MergePolicy$OneMergeProgress.pauseLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         7: .line 182
            return
        end local 0 // org.apache.lucene.index.MergePolicy$OneMergeProgress this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lorg/apache/lucene/index/MergePolicy$OneMergeProgress;
      Exception table:
        from    to  target  type
           1     3       3  any

  public java.util.Map<org.apache.lucene.index.MergePolicy$OneMergeProgress$PauseReason, java.lang.Long> getPauseTimes();
    descriptor: ()Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.apache.lucene.index.MergePolicy$OneMergeProgress this
         0: .line 186
            aload 0 /* this */
            getfield org.apache.lucene.index.MergePolicy$OneMergeProgress.pauseTimesNS:Ljava/util/EnumMap;
            invokevirtual java.util.EnumMap.entrySet:()Ljava/util/Set;
            astore 1 /* entries */
        start local 1 // java.util.Set entries
         1: .line 187
            aload 1 /* entries */
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
         2: .line 189
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  org/apache/lucene/index/MergePolicy$OneMergeProgress.lambda$0(Ljava/util/Map$Entry;)Lorg/apache/lucene/index/MergePolicy$OneMergeProgress$PauseReason; (6)
                  (Ljava/util/Map$Entry;)Lorg/apache/lucene/index/MergePolicy$OneMergeProgress$PauseReason;
         3: .line 190
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  org/apache/lucene/index/MergePolicy$OneMergeProgress.lambda$1(Ljava/util/Map$Entry;)Ljava/lang/Long; (6)
                  (Ljava/util/Map$Entry;)Ljava/lang/Long;
         4: .line 188
            invokestatic java.util.stream.Collectors.toMap:(Ljava/util/function/Function;Ljava/util/function/Function;)Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.util.Map
         5: .line 187
            areturn
        end local 1 // java.util.Set entries
        end local 0 // org.apache.lucene.index.MergePolicy$OneMergeProgress this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lorg/apache/lucene/index/MergePolicy$OneMergeProgress;
            1    6     1  entries  Ljava/util/Set<Ljava/util/Map$Entry<Lorg/apache/lucene/index/MergePolicy$OneMergeProgress$PauseReason;Ljava/util/concurrent/atomic/AtomicLong;>;>;
    Signature: ()Ljava/util/Map<Lorg/apache/lucene/index/MergePolicy$OneMergeProgress$PauseReason;Ljava/lang/Long;>;

  final void setMergeThread(java.lang.Thread);
    descriptor: (Ljava/lang/Thread;)V
    flags: (0x0010) ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.lucene.index.MergePolicy$OneMergeProgress this
        start local 1 // java.lang.Thread owner
         0: .line 194
            getstatic org.apache.lucene.index.MergePolicy$OneMergeProgress.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield org.apache.lucene.index.MergePolicy$OneMergeProgress.owner:Ljava/lang/Thread;
            ifnull 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 195
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* owner */
            putfield org.apache.lucene.index.MergePolicy$OneMergeProgress.owner:Ljava/lang/Thread;
         2: .line 196
            return
        end local 1 // java.lang.Thread owner
        end local 0 // org.apache.lucene.index.MergePolicy$OneMergeProgress this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lorg/apache/lucene/index/MergePolicy$OneMergeProgress;
            0    3     1  owner  Ljava/lang/Thread;
    MethodParameters:
       Name  Flags
      owner  

  private static org.apache.lucene.index.MergePolicy$OneMergeProgress$PauseReason lambda$0(java.util.Map$Entry);
    descriptor: (Ljava/util/Map$Entry;)Lorg/apache/lucene/index/MergePolicy$OneMergeProgress$PauseReason;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.util.Map$Entry e
         0: .line 189
            aload 0 /* e */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast org.apache.lucene.index.MergePolicy$OneMergeProgress$PauseReason
            areturn
        end local 0 // java.util.Map$Entry e
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     e  Ljava/util/Map$Entry<Lorg/apache/lucene/index/MergePolicy$OneMergeProgress$PauseReason;Ljava/util/concurrent/atomic/AtomicLong;>;

  private static java.lang.Long lambda$1(java.util.Map$Entry);
    descriptor: (Ljava/util/Map$Entry;)Ljava/lang/Long;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.util.Map$Entry e
         0: .line 190
            aload 0 /* e */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.util.concurrent.atomic.AtomicLong
            invokevirtual java.util.concurrent.atomic.AtomicLong.get:()J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            areturn
        end local 0 // java.util.Map$Entry e
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     e  Ljava/util/Map$Entry<Lorg/apache/lucene/index/MergePolicy$OneMergeProgress$PauseReason;Ljava/util/concurrent/atomic/AtomicLong;>;
}
SourceFile: "MergePolicy.java"
NestHost: org.apache.lucene.index.MergePolicy
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public abstract Entry = java.util.Map$Entry of java.util.Map
  public OneMergeProgress = org.apache.lucene.index.MergePolicy$OneMergeProgress of org.apache.lucene.index.MergePolicy
  public final PauseReason = org.apache.lucene.index.MergePolicy$OneMergeProgress$PauseReason of org.apache.lucene.index.MergePolicy$OneMergeProgress