abstract class org.ehcache.impl.internal.events.AbstractStoreEventDispatcher<K, V> implements org.ehcache.core.events.StoreEventDispatcher<K, V>
  minor version: 0
  major version: 59
  flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
  this_class: org.ehcache.impl.internal.events.AbstractStoreEventDispatcher
  super_class: java.lang.Object
{
  protected static final org.ehcache.core.events.StoreEventSink<?, ?> NO_OP_EVENT_SINK;
    descriptor: Lorg/ehcache/core/events/StoreEventSink;
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    Signature: Lorg/ehcache/core/events/StoreEventSink<**>;

  private final java.util.Set<org.ehcache.core.spi.store.events.StoreEventFilter<K, V>> filters;
    descriptor: Ljava/util/Set;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Set<Lorg/ehcache/core/spi/store/events/StoreEventFilter<TK;TV;>;>;

  private final java.util.Set<org.ehcache.core.spi.store.events.StoreEventListener<K, V>> listeners;
    descriptor: Ljava/util/Set;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Set<Lorg/ehcache/core/spi/store/events/StoreEventListener<TK;TV;>;>;

  private final java.util.concurrent.BlockingQueue<org.ehcache.impl.internal.events.FireableStoreEventHolder<K, V>>[] orderedQueues;
    descriptor: [Ljava/util/concurrent/BlockingQueue;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: [Ljava/util/concurrent/BlockingQueue<Lorg/ehcache/impl/internal/events/FireableStoreEventHolder<TK;TV;>;>;

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 35
            new org.ehcache.impl.internal.events.AbstractStoreEventDispatcher$1
            dup
            invokespecial org.ehcache.impl.internal.events.AbstractStoreEventDispatcher$1.<init>:()V
            putstatic org.ehcache.impl.internal.events.AbstractStoreEventDispatcher.NO_OP_EVENT_SINK:Lorg/ehcache/core/events/StoreEventSink;
         1: .line 75
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected void <init>(int);
    descriptor: (I)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // org.ehcache.impl.internal.events.AbstractStoreEventDispatcher this
        start local 1 // int dispatcherConcurrency
         0: .line 82
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 77
            aload 0 /* this */
            new java.util.concurrent.CopyOnWriteArraySet
            dup
            invokespecial java.util.concurrent.CopyOnWriteArraySet.<init>:()V
            putfield org.ehcache.impl.internal.events.AbstractStoreEventDispatcher.filters:Ljava/util/Set;
         2: .line 78
            aload 0 /* this */
            new java.util.concurrent.CopyOnWriteArraySet
            dup
            invokespecial java.util.concurrent.CopyOnWriteArraySet.<init>:()V
            putfield org.ehcache.impl.internal.events.AbstractStoreEventDispatcher.listeners:Ljava/util/Set;
         3: .line 80
            aload 0 /* this */
            iconst_0
            putfield org.ehcache.impl.internal.events.AbstractStoreEventDispatcher.ordered:Z
         4: .line 83
            iload 1 /* dispatcherConcurrency */
            ifgt 6
         5: .line 84
            new java.lang.IllegalArgumentException
            dup
            ldc "Dispatcher concurrency must be an integer greater than 0"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 88
      StackMap locals: org.ehcache.impl.internal.events.AbstractStoreEventDispatcher int
      StackMap stack:
            iload 1 /* dispatcherConcurrency */
            anewarray java.util.concurrent.LinkedBlockingQueue
         7: .line 87
            astore 2 /* queues */
        start local 2 // java.util.concurrent.LinkedBlockingQueue[] queues
         8: .line 89
            aload 0 /* this */
            aload 2 /* queues */
            putfield org.ehcache.impl.internal.events.AbstractStoreEventDispatcher.orderedQueues:[Ljava/util/concurrent/BlockingQueue;
         9: .line 90
            iconst_0
            istore 3 /* i */
        start local 3 // int i
        10: goto 13
        11: .line 91
      StackMap locals: java.util.concurrent.LinkedBlockingQueue[] int
      StackMap stack:
            aload 0 /* this */
            getfield org.ehcache.impl.internal.events.AbstractStoreEventDispatcher.orderedQueues:[Ljava/util/concurrent/BlockingQueue;
            iload 3 /* i */
            new java.util.concurrent.LinkedBlockingQueue
            dup
            sipush 10000
            invokespecial java.util.concurrent.LinkedBlockingQueue.<init>:(I)V
            aastore
        12: .line 90
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        13: iload 3 /* i */
            aload 0 /* this */
            getfield org.ehcache.impl.internal.events.AbstractStoreEventDispatcher.orderedQueues:[Ljava/util/concurrent/BlockingQueue;
            arraylength
            if_icmplt 11
        end local 3 // int i
        14: .line 93
            return
        end local 2 // java.util.concurrent.LinkedBlockingQueue[] queues
        end local 1 // int dispatcherConcurrency
        end local 0 // org.ehcache.impl.internal.events.AbstractStoreEventDispatcher this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   15     0                   this  Lorg/ehcache/impl/internal/events/AbstractStoreEventDispatcher<TK;TV;>;
            0   15     1  dispatcherConcurrency  I
            8   15     2                 queues  [Ljava/util/concurrent/LinkedBlockingQueue;
           10   14     3                      i  I
    MethodParameters:
                       Name  Flags
      dispatcherConcurrency  

  protected java.util.Set<org.ehcache.core.spi.store.events.StoreEventListener<K, V>> getListeners();
    descriptor: ()Ljava/util/Set;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.ehcache.impl.internal.events.AbstractStoreEventDispatcher this
         0: .line 96
            aload 0 /* this */
            getfield org.ehcache.impl.internal.events.AbstractStoreEventDispatcher.listeners:Ljava/util/Set;
            areturn
        end local 0 // org.ehcache.impl.internal.events.AbstractStoreEventDispatcher this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/ehcache/impl/internal/events/AbstractStoreEventDispatcher<TK;TV;>;
    Signature: ()Ljava/util/Set<Lorg/ehcache/core/spi/store/events/StoreEventListener<TK;TV;>;>;

  protected java.util.Set<org.ehcache.core.spi.store.events.StoreEventFilter<K, V>> getFilters();
    descriptor: ()Ljava/util/Set;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.ehcache.impl.internal.events.AbstractStoreEventDispatcher this
         0: .line 100
            aload 0 /* this */
            getfield org.ehcache.impl.internal.events.AbstractStoreEventDispatcher.filters:Ljava/util/Set;
            areturn
        end local 0 // org.ehcache.impl.internal.events.AbstractStoreEventDispatcher this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/ehcache/impl/internal/events/AbstractStoreEventDispatcher<TK;TV;>;
    Signature: ()Ljava/util/Set<Lorg/ehcache/core/spi/store/events/StoreEventFilter<TK;TV;>;>;

  protected java.util.concurrent.BlockingQueue<org.ehcache.impl.internal.events.FireableStoreEventHolder<K, V>>[] getOrderedQueues();
    descriptor: ()[Ljava/util/concurrent/BlockingQueue;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.ehcache.impl.internal.events.AbstractStoreEventDispatcher this
         0: .line 104
            aload 0 /* this */
            getfield org.ehcache.impl.internal.events.AbstractStoreEventDispatcher.orderedQueues:[Ljava/util/concurrent/BlockingQueue;
            areturn
        end local 0 // org.ehcache.impl.internal.events.AbstractStoreEventDispatcher this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/ehcache/impl/internal/events/AbstractStoreEventDispatcher<TK;TV;>;
    Signature: ()[Ljava/util/concurrent/BlockingQueue<Lorg/ehcache/impl/internal/events/FireableStoreEventHolder<TK;TV;>;>;

  public void addEventListener(org.ehcache.core.spi.store.events.StoreEventListener<K, V>);
    descriptor: (Lorg/ehcache/core/spi/store/events/StoreEventListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.ehcache.impl.internal.events.AbstractStoreEventDispatcher this
        start local 1 // org.ehcache.core.spi.store.events.StoreEventListener eventListener
         0: .line 109
            aload 0 /* this */
            getfield org.ehcache.impl.internal.events.AbstractStoreEventDispatcher.listeners:Ljava/util/Set;
            aload 1 /* eventListener */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         1: .line 110
            return
        end local 1 // org.ehcache.core.spi.store.events.StoreEventListener eventListener
        end local 0 // org.ehcache.impl.internal.events.AbstractStoreEventDispatcher this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lorg/ehcache/impl/internal/events/AbstractStoreEventDispatcher<TK;TV;>;
            0    2     1  eventListener  Lorg/ehcache/core/spi/store/events/StoreEventListener<TK;TV;>;
    Signature: (Lorg/ehcache/core/spi/store/events/StoreEventListener<TK;TV;>;)V
    MethodParameters:
               Name  Flags
      eventListener  

  public void removeEventListener(org.ehcache.core.spi.store.events.StoreEventListener<K, V>);
    descriptor: (Lorg/ehcache/core/spi/store/events/StoreEventListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.ehcache.impl.internal.events.AbstractStoreEventDispatcher this
        start local 1 // org.ehcache.core.spi.store.events.StoreEventListener eventListener
         0: .line 114
            aload 0 /* this */
            getfield org.ehcache.impl.internal.events.AbstractStoreEventDispatcher.listeners:Ljava/util/Set;
            aload 1 /* eventListener */
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
         1: .line 115
            return
        end local 1 // org.ehcache.core.spi.store.events.StoreEventListener eventListener
        end local 0 // org.ehcache.impl.internal.events.AbstractStoreEventDispatcher this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lorg/ehcache/impl/internal/events/AbstractStoreEventDispatcher<TK;TV;>;
            0    2     1  eventListener  Lorg/ehcache/core/spi/store/events/StoreEventListener<TK;TV;>;
    Signature: (Lorg/ehcache/core/spi/store/events/StoreEventListener<TK;TV;>;)V
    MethodParameters:
               Name  Flags
      eventListener  

  public void addEventFilter(org.ehcache.core.spi.store.events.StoreEventFilter<K, V>);
    descriptor: (Lorg/ehcache/core/spi/store/events/StoreEventFilter;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.ehcache.impl.internal.events.AbstractStoreEventDispatcher this
        start local 1 // org.ehcache.core.spi.store.events.StoreEventFilter eventFilter
         0: .line 119
            aload 0 /* this */
            getfield org.ehcache.impl.internal.events.AbstractStoreEventDispatcher.filters:Ljava/util/Set;
            aload 1 /* eventFilter */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         1: .line 120
            return
        end local 1 // org.ehcache.core.spi.store.events.StoreEventFilter eventFilter
        end local 0 // org.ehcache.impl.internal.events.AbstractStoreEventDispatcher this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lorg/ehcache/impl/internal/events/AbstractStoreEventDispatcher<TK;TV;>;
            0    2     1  eventFilter  Lorg/ehcache/core/spi/store/events/StoreEventFilter<TK;TV;>;
    Signature: (Lorg/ehcache/core/spi/store/events/StoreEventFilter<TK;TV;>;)V
    MethodParameters:
             Name  Flags
      eventFilter  

  public void setEventOrdering(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.ehcache.impl.internal.events.AbstractStoreEventDispatcher this
        start local 1 // boolean ordering
         0: .line 124
            aload 0 /* this */
            iload 1 /* ordering */
            putfield org.ehcache.impl.internal.events.AbstractStoreEventDispatcher.ordered:Z
         1: .line 125
            return
        end local 1 // boolean ordering
        end local 0 // org.ehcache.impl.internal.events.AbstractStoreEventDispatcher this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/ehcache/impl/internal/events/AbstractStoreEventDispatcher<TK;TV;>;
            0    2     1  ordering  Z
    MethodParameters:
          Name  Flags
      ordering  

  public boolean isEventOrdering();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.ehcache.impl.internal.events.AbstractStoreEventDispatcher this
         0: .line 129
            aload 0 /* this */
            getfield org.ehcache.impl.internal.events.AbstractStoreEventDispatcher.ordered:Z
            ireturn
        end local 0 // org.ehcache.impl.internal.events.AbstractStoreEventDispatcher this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/ehcache/impl/internal/events/AbstractStoreEventDispatcher<TK;TV;>;

  public void releaseEventSink(org.ehcache.core.events.StoreEventSink<K, V>);
    descriptor: (Lorg/ehcache/core/events/StoreEventSink;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.ehcache.impl.internal.events.AbstractStoreEventDispatcher this
        start local 1 // org.ehcache.core.events.StoreEventSink eventSink
         0: .line 134
            aload 1 /* eventSink */
            checkcast org.ehcache.impl.internal.events.CloseableStoreEventSink
            invokeinterface org.ehcache.impl.internal.events.CloseableStoreEventSink.close:()V
         1: .line 135
            return
        end local 1 // org.ehcache.core.events.StoreEventSink eventSink
        end local 0 // org.ehcache.impl.internal.events.AbstractStoreEventDispatcher this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lorg/ehcache/impl/internal/events/AbstractStoreEventDispatcher<TK;TV;>;
            0    2     1  eventSink  Lorg/ehcache/core/events/StoreEventSink<TK;TV;>;
    Signature: (Lorg/ehcache/core/events/StoreEventSink<TK;TV;>;)V
    MethodParameters:
           Name  Flags
      eventSink  

  public void releaseEventSinkAfterFailure(org.ehcache.core.events.StoreEventSink<K, V>, java.lang.Throwable);
    descriptor: (Lorg/ehcache/core/events/StoreEventSink;Ljava/lang/Throwable;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=3
        start local 0 // org.ehcache.impl.internal.events.AbstractStoreEventDispatcher this
        start local 1 // org.ehcache.core.events.StoreEventSink eventSink
        start local 2 // java.lang.Throwable throwable
         0: .line 139
            aload 1 /* eventSink */
            checkcast org.ehcache.impl.internal.events.CloseableStoreEventSink
            invokeinterface org.ehcache.impl.internal.events.CloseableStoreEventSink.closeOnFailure:()V
         1: .line 140
            return
        end local 2 // java.lang.Throwable throwable
        end local 1 // org.ehcache.core.events.StoreEventSink eventSink
        end local 0 // org.ehcache.impl.internal.events.AbstractStoreEventDispatcher this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lorg/ehcache/impl/internal/events/AbstractStoreEventDispatcher<TK;TV;>;
            0    2     1  eventSink  Lorg/ehcache/core/events/StoreEventSink<TK;TV;>;
            0    2     2  throwable  Ljava/lang/Throwable;
    Signature: (Lorg/ehcache/core/events/StoreEventSink<TK;TV;>;Ljava/lang/Throwable;)V
    MethodParameters:
           Name  Flags
      eventSink  
      throwable  

  public void reset(org.ehcache.core.events.StoreEventSink<K, V>);
    descriptor: (Lorg/ehcache/core/events/StoreEventSink;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.ehcache.impl.internal.events.AbstractStoreEventDispatcher this
        start local 1 // org.ehcache.core.events.StoreEventSink eventSink
         0: .line 144
            aload 1 /* eventSink */
            checkcast org.ehcache.impl.internal.events.CloseableStoreEventSink
            invokeinterface org.ehcache.impl.internal.events.CloseableStoreEventSink.reset:()V
         1: .line 145
            return
        end local 1 // org.ehcache.core.events.StoreEventSink eventSink
        end local 0 // org.ehcache.impl.internal.events.AbstractStoreEventDispatcher this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lorg/ehcache/impl/internal/events/AbstractStoreEventDispatcher<TK;TV;>;
            0    2     1  eventSink  Lorg/ehcache/core/events/StoreEventSink<TK;TV;>;
    Signature: (Lorg/ehcache/core/events/StoreEventSink<TK;TV;>;)V
    MethodParameters:
           Name  Flags
      eventSink  
}
Signature: <K:Ljava/lang/Object;V:Ljava/lang/Object;>Ljava/lang/Object;Lorg/ehcache/core/events/StoreEventDispatcher<TK;TV;>;
SourceFile: "AbstractStoreEventDispatcher.java"
NestMembers:
  org.ehcache.impl.internal.events.AbstractStoreEventDispatcher$1
InnerClasses:
  org.ehcache.impl.internal.events.AbstractStoreEventDispatcher$1