abstract class org.ehcache.impl.internal.loaderwriter.writebehind.BatchingLocalHeapWriteBehindQueue$Batch implements java.lang.Runnable
  minor version: 0
  major version: 59
  flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
  this_class: org.ehcache.impl.internal.loaderwriter.writebehind.BatchingLocalHeapWriteBehindQueue$Batch
  super_class: java.lang.Object
{
  private final int batchSize;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.concurrent.ScheduledFuture<?> expireTask;
    descriptor: Ljava/util/concurrent/ScheduledFuture;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/concurrent/ScheduledFuture<*>;

  final org.ehcache.impl.internal.loaderwriter.writebehind.BatchingLocalHeapWriteBehindQueue this$0;
    descriptor: Lorg/ehcache/impl/internal/loaderwriter/writebehind/BatchingLocalHeapWriteBehindQueue;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  void <init>(org.ehcache.impl.internal.loaderwriter.writebehind.BatchingLocalHeapWriteBehindQueue, int);
    descriptor: (Lorg/ehcache/impl/internal/loaderwriter/writebehind/BatchingLocalHeapWriteBehindQueue;I)V
    flags: (0x0000) 
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // org.ehcache.impl.internal.loaderwriter.writebehind.BatchingLocalHeapWriteBehindQueue$Batch this
        start local 2 // int size
         0: .line 173
            aload 0 /* this */
            aload 1
            putfield org.ehcache.impl.internal.loaderwriter.writebehind.BatchingLocalHeapWriteBehindQueue$Batch.this$0:Lorg/ehcache/impl/internal/loaderwriter/writebehind/BatchingLocalHeapWriteBehindQueue;
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 174
            aload 0 /* this */
            iload 2 /* size */
            putfield org.ehcache.impl.internal.loaderwriter.writebehind.BatchingLocalHeapWriteBehindQueue$Batch.batchSize:I
         2: .line 175
            aload 0 /* this */
            aload 1
            getfield org.ehcache.impl.internal.loaderwriter.writebehind.BatchingLocalHeapWriteBehindQueue.scheduledExecutor:Ljava/util/concurrent/ScheduledExecutorService;
            aload 0 /* this */
            invokedynamic run(Lorg/ehcache/impl/internal/loaderwriter/writebehind/BatchingLocalHeapWriteBehindQueue$Batch;)Ljava/lang/Runnable;
              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:
                  ()V
                  org/ehcache/impl/internal/loaderwriter/writebehind/BatchingLocalHeapWriteBehindQueue$Batch.lambda$0()V (7)
                  ()V
         3: .line 182
            aload 1
            getfield org.ehcache.impl.internal.loaderwriter.writebehind.BatchingLocalHeapWriteBehindQueue.maxWriteDelayMs:J
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
         4: .line 175
            invokeinterface java.util.concurrent.ScheduledExecutorService.schedule:(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;
            putfield org.ehcache.impl.internal.loaderwriter.writebehind.BatchingLocalHeapWriteBehindQueue$Batch.expireTask:Ljava/util/concurrent/ScheduledFuture;
         5: .line 183
            return
        end local 2 // int size
        end local 0 // org.ehcache.impl.internal.loaderwriter.writebehind.BatchingLocalHeapWriteBehindQueue$Batch this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/ehcache/impl/internal/loaderwriter/writebehind/BatchingLocalHeapWriteBehindQueue$Batch;
            0    6     2  size  I
    MethodParameters:
        Name  Flags
      this$0  final
      size    

  public boolean add(org.ehcache.impl.internal.loaderwriter.writebehind.operations.SingleOperation<K, V>);
    descriptor: (Lorg/ehcache/impl/internal/loaderwriter/writebehind/operations/SingleOperation;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.ehcache.impl.internal.loaderwriter.writebehind.BatchingLocalHeapWriteBehindQueue$Batch this
        start local 1 // org.ehcache.impl.internal.loaderwriter.writebehind.operations.SingleOperation operation
         0: .line 186
            aload 0 /* this */
            aload 1 /* operation */
            invokevirtual org.ehcache.impl.internal.loaderwriter.writebehind.BatchingLocalHeapWriteBehindQueue$Batch.internalAdd:(Lorg/ehcache/impl/internal/loaderwriter/writebehind/operations/SingleOperation;)V
         1: .line 187
            aload 0 /* this */
            invokevirtual org.ehcache.impl.internal.loaderwriter.writebehind.BatchingLocalHeapWriteBehindQueue$Batch.size:()I
            aload 0 /* this */
            getfield org.ehcache.impl.internal.loaderwriter.writebehind.BatchingLocalHeapWriteBehindQueue$Batch.batchSize:I
            if_icmplt 2
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         2: iconst_0
            ireturn
        end local 1 // org.ehcache.impl.internal.loaderwriter.writebehind.operations.SingleOperation operation
        end local 0 // org.ehcache.impl.internal.loaderwriter.writebehind.BatchingLocalHeapWriteBehindQueue$Batch this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0       this  Lorg/ehcache/impl/internal/loaderwriter/writebehind/BatchingLocalHeapWriteBehindQueue$Batch;
            0    3     1  operation  Lorg/ehcache/impl/internal/loaderwriter/writebehind/operations/SingleOperation<TK;TV;>;
    Signature: (Lorg/ehcache/impl/internal/loaderwriter/writebehind/operations/SingleOperation<TK;TV;>;)Z
    MethodParameters:
           Name  Flags
      operation  

  public void run();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=9, args_size=1
        start local 0 // org.ehcache.impl.internal.loaderwriter.writebehind.BatchingLocalHeapWriteBehindQueue$Batch this
         0: .line 193
            aload 0 /* this */
            invokevirtual org.ehcache.impl.internal.loaderwriter.writebehind.BatchingLocalHeapWriteBehindQueue$Batch.operations:()Ljava/lang/Iterable;
            invokestatic org.ehcache.impl.internal.loaderwriter.writebehind.BatchingLocalHeapWriteBehindQueue.createMonomorphicBatches:(Ljava/lang/Iterable;)Ljava/util/List;
            astore 1 /* batches */
        start local 1 // java.util.List batches
         1: .line 195
            aload 1 /* batches */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 7
      StackMap locals: org.ehcache.impl.internal.loaderwriter.writebehind.BatchingLocalHeapWriteBehindQueue$Batch java.util.List top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.ehcache.impl.internal.loaderwriter.writebehind.operations.BatchOperation
            astore 2 /* batch */
        start local 2 // org.ehcache.impl.internal.loaderwriter.writebehind.operations.BatchOperation batch
         3: .line 197
            aload 2 /* batch */
            aload 0 /* this */
            getfield org.ehcache.impl.internal.loaderwriter.writebehind.BatchingLocalHeapWriteBehindQueue$Batch.this$0:Lorg/ehcache/impl/internal/loaderwriter/writebehind/BatchingLocalHeapWriteBehindQueue;
            getfield org.ehcache.impl.internal.loaderwriter.writebehind.BatchingLocalHeapWriteBehindQueue.cacheLoaderWriter:Lorg/ehcache/spi/loaderwriter/CacheLoaderWriter;
            invokeinterface org.ehcache.impl.internal.loaderwriter.writebehind.operations.BatchOperation.performOperation:(Lorg/ehcache/spi/loaderwriter/CacheLoaderWriter;)V
         4: .line 198
            goto 7
      StackMap locals: org.ehcache.impl.internal.loaderwriter.writebehind.BatchingLocalHeapWriteBehindQueue$Batch java.util.List org.ehcache.impl.internal.loaderwriter.writebehind.operations.BatchOperation java.util.Iterator
      StackMap stack: java.lang.Exception
         5: astore 4 /* e */
        start local 4 // java.lang.Exception e
         6: .line 199
            getstatic org.ehcache.impl.internal.loaderwriter.writebehind.BatchingLocalHeapWriteBehindQueue.LOGGER:Lorg/slf4j/Logger;
            ldc "Exception while bulk processing in write behind queue"
            aload 4 /* e */
            invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;Ljava/lang/Throwable;)V
        end local 4 // java.lang.Exception e
        end local 2 // org.ehcache.impl.internal.loaderwriter.writebehind.operations.BatchOperation batch
         7: .line 195
      StackMap locals: org.ehcache.impl.internal.loaderwriter.writebehind.BatchingLocalHeapWriteBehindQueue$Batch java.util.List top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        end local 1 // java.util.List batches
         8: .line 202
            goto 22
      StackMap locals: org.ehcache.impl.internal.loaderwriter.writebehind.BatchingLocalHeapWriteBehindQueue$Batch
      StackMap stack: java.lang.Throwable
         9: astore 5
        10: .line 204
            aload 0 /* this */
            invokevirtual org.ehcache.impl.internal.loaderwriter.writebehind.BatchingLocalHeapWriteBehindQueue$Batch.operations:()Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 7
            goto 13
      StackMap locals: org.ehcache.impl.internal.loaderwriter.writebehind.BatchingLocalHeapWriteBehindQueue$Batch top top top top java.lang.Throwable top java.util.Iterator
      StackMap stack:
        11: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.ehcache.impl.internal.loaderwriter.writebehind.operations.SingleOperation
            astore 6 /* op */
        start local 6 // org.ehcache.impl.internal.loaderwriter.writebehind.operations.SingleOperation op
        12: .line 205
            aload 0 /* this */
            getfield org.ehcache.impl.internal.loaderwriter.writebehind.BatchingLocalHeapWriteBehindQueue$Batch.this$0:Lorg/ehcache/impl/internal/loaderwriter/writebehind/BatchingLocalHeapWriteBehindQueue;
            getfield org.ehcache.impl.internal.loaderwriter.writebehind.BatchingLocalHeapWriteBehindQueue.latest:Ljava/util/concurrent/ConcurrentMap;
            aload 6 /* op */
            invokeinterface org.ehcache.impl.internal.loaderwriter.writebehind.operations.SingleOperation.getKey:()Ljava/lang/Object;
            aload 6 /* op */
            invokeinterface java.util.concurrent.ConcurrentMap.remove:(Ljava/lang/Object;Ljava/lang/Object;)Z
            pop
        end local 6 // org.ehcache.impl.internal.loaderwriter.writebehind.operations.SingleOperation op
        13: .line 204
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 11
        14: .line 207
            goto 19
      StackMap locals: org.ehcache.impl.internal.loaderwriter.writebehind.BatchingLocalHeapWriteBehindQueue$Batch top top top top java.lang.Throwable
      StackMap stack: java.lang.Throwable
        15: astore 8
        16: .line 208
            getstatic org.ehcache.impl.internal.loaderwriter.writebehind.BatchingLocalHeapWriteBehindQueue.LOGGER:Lorg/slf4j/Logger;
            ldc "Cancelling batch expiry task"
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;)V
        17: .line 209
            aload 0 /* this */
            getfield org.ehcache.impl.internal.loaderwriter.writebehind.BatchingLocalHeapWriteBehindQueue$Batch.expireTask:Ljava/util/concurrent/ScheduledFuture;
            iconst_0
            invokeinterface java.util.concurrent.ScheduledFuture.cancel:(Z)Z
            pop
        18: .line 210
            aload 8
            athrow
        19: .line 208
      StackMap locals:
      StackMap stack:
            getstatic org.ehcache.impl.internal.loaderwriter.writebehind.BatchingLocalHeapWriteBehindQueue.LOGGER:Lorg/slf4j/Logger;
            ldc "Cancelling batch expiry task"
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;)V
        20: .line 209
            aload 0 /* this */
            getfield org.ehcache.impl.internal.loaderwriter.writebehind.BatchingLocalHeapWriteBehindQueue$Batch.expireTask:Ljava/util/concurrent/ScheduledFuture;
            iconst_0
            invokeinterface java.util.concurrent.ScheduledFuture.cancel:(Z)Z
            pop
        21: .line 211
            aload 5
            athrow
        22: .line 204
      StackMap locals: org.ehcache.impl.internal.loaderwriter.writebehind.BatchingLocalHeapWriteBehindQueue$Batch
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.ehcache.impl.internal.loaderwriter.writebehind.BatchingLocalHeapWriteBehindQueue$Batch.operations:()Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 7
            goto 25
      StackMap locals: org.ehcache.impl.internal.loaderwriter.writebehind.BatchingLocalHeapWriteBehindQueue$Batch top top top top top top java.util.Iterator
      StackMap stack:
        23: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.ehcache.impl.internal.loaderwriter.writebehind.operations.SingleOperation
            astore 6 /* op */
        start local 6 // org.ehcache.impl.internal.loaderwriter.writebehind.operations.SingleOperation op
        24: .line 205
            aload 0 /* this */
            getfield org.ehcache.impl.internal.loaderwriter.writebehind.BatchingLocalHeapWriteBehindQueue$Batch.this$0:Lorg/ehcache/impl/internal/loaderwriter/writebehind/BatchingLocalHeapWriteBehindQueue;
            getfield org.ehcache.impl.internal.loaderwriter.writebehind.BatchingLocalHeapWriteBehindQueue.latest:Ljava/util/concurrent/ConcurrentMap;
            aload 6 /* op */
            invokeinterface org.ehcache.impl.internal.loaderwriter.writebehind.operations.SingleOperation.getKey:()Ljava/lang/Object;
            aload 6 /* op */
            invokeinterface java.util.concurrent.ConcurrentMap.remove:(Ljava/lang/Object;Ljava/lang/Object;)Z
            pop
        end local 6 // org.ehcache.impl.internal.loaderwriter.writebehind.operations.SingleOperation op
        25: .line 204
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 23
        26: .line 207
            goto 31
      StackMap locals: org.ehcache.impl.internal.loaderwriter.writebehind.BatchingLocalHeapWriteBehindQueue$Batch
      StackMap stack: java.lang.Throwable
        27: astore 8
        28: .line 208
            getstatic org.ehcache.impl.internal.loaderwriter.writebehind.BatchingLocalHeapWriteBehindQueue.LOGGER:Lorg/slf4j/Logger;
            ldc "Cancelling batch expiry task"
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;)V
        29: .line 209
            aload 0 /* this */
            getfield org.ehcache.impl.internal.loaderwriter.writebehind.BatchingLocalHeapWriteBehindQueue$Batch.expireTask:Ljava/util/concurrent/ScheduledFuture;
            iconst_0
            invokeinterface java.util.concurrent.ScheduledFuture.cancel:(Z)Z
            pop
        30: .line 210
            aload 8
            athrow
        31: .line 208
      StackMap locals:
      StackMap stack:
            getstatic org.ehcache.impl.internal.loaderwriter.writebehind.BatchingLocalHeapWriteBehindQueue.LOGGER:Lorg/slf4j/Logger;
            ldc "Cancelling batch expiry task"
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;)V
        32: .line 209
            aload 0 /* this */
            getfield org.ehcache.impl.internal.loaderwriter.writebehind.BatchingLocalHeapWriteBehindQueue$Batch.expireTask:Ljava/util/concurrent/ScheduledFuture;
            iconst_0
            invokeinterface java.util.concurrent.ScheduledFuture.cancel:(Z)Z
            pop
        33: .line 212
            return
        end local 0 // org.ehcache.impl.internal.loaderwriter.writebehind.BatchingLocalHeapWriteBehindQueue$Batch this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   34     0     this  Lorg/ehcache/impl/internal/loaderwriter/writebehind/BatchingLocalHeapWriteBehindQueue$Batch;
            1    8     1  batches  Ljava/util/List<Lorg/ehcache/impl/internal/loaderwriter/writebehind/operations/BatchOperation<TK;TV;>;>;
            3    7     2    batch  Lorg/ehcache/impl/internal/loaderwriter/writebehind/operations/BatchOperation<TK;TV;>;
            6    7     4        e  Ljava/lang/Exception;
           12   13     6       op  Lorg/ehcache/impl/internal/loaderwriter/writebehind/operations/SingleOperation<TK;TV;>;
           24   25     6       op  Lorg/ehcache/impl/internal/loaderwriter/writebehind/operations/SingleOperation<TK;TV;>;
      Exception table:
        from    to  target  type
           3     4       5  Class java.lang.Exception
           0     9       9  any
          10    15      15  any
          22    27      27  any

  protected abstract void internalAdd(org.ehcache.impl.internal.loaderwriter.writebehind.operations.SingleOperation<K, V>);
    descriptor: (Lorg/ehcache/impl/internal/loaderwriter/writebehind/operations/SingleOperation;)V
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    Signature: (Lorg/ehcache/impl/internal/loaderwriter/writebehind/operations/SingleOperation<TK;TV;>;)V
    MethodParameters:
           Name  Flags
      operation  

  protected abstract java.lang.Iterable<org.ehcache.impl.internal.loaderwriter.writebehind.operations.SingleOperation<K, V>> operations();
    descriptor: ()Ljava/lang/Iterable;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    Signature: ()Ljava/lang/Iterable<Lorg/ehcache/impl/internal/loaderwriter/writebehind/operations/SingleOperation<TK;TV;>;>;

  protected abstract int size();
    descriptor: ()I
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  private void lambda$0();
    descriptor: ()V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.ehcache.impl.internal.loaderwriter.writebehind.BatchingLocalHeapWriteBehindQueue$Batch this
         0: .line 176
            aload 0 /* this */
            getfield org.ehcache.impl.internal.loaderwriter.writebehind.BatchingLocalHeapWriteBehindQueue$Batch.this$0:Lorg/ehcache/impl/internal/loaderwriter/writebehind/BatchingLocalHeapWriteBehindQueue;
            dup
            astore 1
            monitorenter
         1: .line 177
            aload 0 /* this */
            getfield org.ehcache.impl.internal.loaderwriter.writebehind.BatchingLocalHeapWriteBehindQueue$Batch.this$0:Lorg/ehcache/impl/internal/loaderwriter/writebehind/BatchingLocalHeapWriteBehindQueue;
            getfield org.ehcache.impl.internal.loaderwriter.writebehind.BatchingLocalHeapWriteBehindQueue.openBatch:Lorg/ehcache/impl/internal/loaderwriter/writebehind/BatchingLocalHeapWriteBehindQueue$Batch;
            aload 0 /* this */
            if_acmpne 4
         2: .line 178
            aload 0 /* this */
            getfield org.ehcache.impl.internal.loaderwriter.writebehind.BatchingLocalHeapWriteBehindQueue$Batch.this$0:Lorg/ehcache/impl/internal/loaderwriter/writebehind/BatchingLocalHeapWriteBehindQueue;
            aload 0 /* this */
            getfield org.ehcache.impl.internal.loaderwriter.writebehind.BatchingLocalHeapWriteBehindQueue$Batch.this$0:Lorg/ehcache/impl/internal/loaderwriter/writebehind/BatchingLocalHeapWriteBehindQueue;
            getfield org.ehcache.impl.internal.loaderwriter.writebehind.BatchingLocalHeapWriteBehindQueue.openBatch:Lorg/ehcache/impl/internal/loaderwriter/writebehind/BatchingLocalHeapWriteBehindQueue$Batch;
            invokevirtual org.ehcache.impl.internal.loaderwriter.writebehind.BatchingLocalHeapWriteBehindQueue.submit:(Lorg/ehcache/impl/internal/loaderwriter/writebehind/BatchingLocalHeapWriteBehindQueue$Batch;)Ljava/util/concurrent/Future;
            pop
         3: .line 179
            aload 0 /* this */
            getfield org.ehcache.impl.internal.loaderwriter.writebehind.BatchingLocalHeapWriteBehindQueue$Batch.this$0:Lorg/ehcache/impl/internal/loaderwriter/writebehind/BatchingLocalHeapWriteBehindQueue;
            aconst_null
            putfield org.ehcache.impl.internal.loaderwriter.writebehind.BatchingLocalHeapWriteBehindQueue.openBatch:Lorg/ehcache/impl/internal/loaderwriter/writebehind/BatchingLocalHeapWriteBehindQueue$Batch;
         4: .line 176
      StackMap locals: org.ehcache.impl.internal.loaderwriter.writebehind.BatchingLocalHeapWriteBehindQueue
      StackMap stack:
            aload 1
            monitorexit
         5: goto 8
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: aload 1
            monitorexit
         7: athrow
         8: .line 182
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.ehcache.impl.internal.loaderwriter.writebehind.BatchingLocalHeapWriteBehindQueue$Batch this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lorg/ehcache/impl/internal/loaderwriter/writebehind/BatchingLocalHeapWriteBehindQueue$Batch;
      Exception table:
        from    to  target  type
           1     5       6  any
           6     7       6  any
}
SourceFile: "BatchingLocalHeapWriteBehindQueue.java"
NestHost: org.ehcache.impl.internal.loaderwriter.writebehind.BatchingLocalHeapWriteBehindQueue
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  abstract Batch = org.ehcache.impl.internal.loaderwriter.writebehind.BatchingLocalHeapWriteBehindQueue$Batch of org.ehcache.impl.internal.loaderwriter.writebehind.BatchingLocalHeapWriteBehindQueue