public class org.ehcache.impl.internal.events.CacheEventDispatcherFactoryImpl implements org.ehcache.core.events.CacheEventDispatcherFactory
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.ehcache.impl.internal.events.CacheEventDispatcherFactoryImpl
  super_class: java.lang.Object
{
  private final java.lang.String defaultThreadPoolAlias;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private volatile org.ehcache.core.spi.service.ExecutionService executionService;
    descriptor: Lorg/ehcache/core/spi/service/ExecutionService;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.ehcache.impl.internal.events.CacheEventDispatcherFactoryImpl this
         0: .line 46
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 47
            aload 0 /* this */
            aconst_null
            putfield org.ehcache.impl.internal.events.CacheEventDispatcherFactoryImpl.defaultThreadPoolAlias:Ljava/lang/String;
         2: .line 48
            return
        end local 0 // org.ehcache.impl.internal.events.CacheEventDispatcherFactoryImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/ehcache/impl/internal/events/CacheEventDispatcherFactoryImpl;

  public void <init>(org.ehcache.impl.config.event.CacheEventDispatcherFactoryConfiguration);
    descriptor: (Lorg/ehcache/impl/config/event/CacheEventDispatcherFactoryConfiguration;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.ehcache.impl.internal.events.CacheEventDispatcherFactoryImpl this
        start local 1 // org.ehcache.impl.config.event.CacheEventDispatcherFactoryConfiguration configuration
         0: .line 50
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 51
            aload 0 /* this */
            aload 1 /* configuration */
            invokevirtual org.ehcache.impl.config.event.CacheEventDispatcherFactoryConfiguration.getThreadPoolAlias:()Ljava/lang/String;
            putfield org.ehcache.impl.internal.events.CacheEventDispatcherFactoryImpl.defaultThreadPoolAlias:Ljava/lang/String;
         2: .line 52
            return
        end local 1 // org.ehcache.impl.config.event.CacheEventDispatcherFactoryConfiguration configuration
        end local 0 // org.ehcache.impl.internal.events.CacheEventDispatcherFactoryImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lorg/ehcache/impl/internal/events/CacheEventDispatcherFactoryImpl;
            0    3     1  configuration  Lorg/ehcache/impl/config/event/CacheEventDispatcherFactoryConfiguration;
    MethodParameters:
               Name  Flags
      configuration  

  public void start(org.ehcache.spi.service.ServiceProvider<org.ehcache.spi.service.Service>);
    descriptor: (Lorg/ehcache/spi/service/ServiceProvider;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.ehcache.impl.internal.events.CacheEventDispatcherFactoryImpl this
        start local 1 // org.ehcache.spi.service.ServiceProvider serviceProvider
         0: .line 56
            aload 0 /* this */
            aload 1 /* serviceProvider */
            ldc Lorg/ehcache/core/spi/service/ExecutionService;
            invokeinterface org.ehcache.spi.service.ServiceProvider.getService:(Ljava/lang/Class;)Lorg/ehcache/spi/service/Service;
            checkcast org.ehcache.core.spi.service.ExecutionService
            putfield org.ehcache.impl.internal.events.CacheEventDispatcherFactoryImpl.executionService:Lorg/ehcache/core/spi/service/ExecutionService;
         1: .line 57
            return
        end local 1 // org.ehcache.spi.service.ServiceProvider serviceProvider
        end local 0 // org.ehcache.impl.internal.events.CacheEventDispatcherFactoryImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lorg/ehcache/impl/internal/events/CacheEventDispatcherFactoryImpl;
            0    2     1  serviceProvider  Lorg/ehcache/spi/service/ServiceProvider<Lorg/ehcache/spi/service/Service;>;
    Signature: (Lorg/ehcache/spi/service/ServiceProvider<Lorg/ehcache/spi/service/Service;>;)V
    MethodParameters:
                 Name  Flags
      serviceProvider  

  public void stop();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // org.ehcache.impl.internal.events.CacheEventDispatcherFactoryImpl this
         0: .line 61
            return
        end local 0 // org.ehcache.impl.internal.events.CacheEventDispatcherFactoryImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/ehcache/impl/internal/events/CacheEventDispatcherFactoryImpl;

  public <K, V> org.ehcache.core.events.CacheEventDispatcher<K, V> createCacheEventDispatcher(org.ehcache.core.spi.store.Store<K, V>, org.ehcache.spi.service.ServiceConfiguration<?, ?>[]);
    descriptor: (Lorg/ehcache/core/spi/store/Store;[Lorg/ehcache/spi/service/ServiceConfiguration;)Lorg/ehcache/core/events/CacheEventDispatcher;
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // org.ehcache.impl.internal.events.CacheEventDispatcherFactoryImpl this
        start local 1 // org.ehcache.core.spi.store.Store store
        start local 2 // org.ehcache.spi.service.ServiceConfiguration[] serviceConfigs
         0: .line 65
            aload 0 /* this */
            getfield org.ehcache.impl.internal.events.CacheEventDispatcherFactoryImpl.defaultThreadPoolAlias:Ljava/lang/String;
            astore 3 /* threadPoolAlias */
        start local 3 // java.lang.String threadPoolAlias
         1: .line 66
            ldc Lorg/ehcache/impl/config/event/DefaultCacheEventDispatcherConfiguration;
            aload 2 /* serviceConfigs */
            invokestatic org.ehcache.core.spi.service.ServiceUtils.findSingletonAmongst:(Ljava/lang/Class;[Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.ehcache.impl.config.event.DefaultCacheEventDispatcherConfiguration
            astore 4 /* config */
        start local 4 // org.ehcache.impl.config.event.DefaultCacheEventDispatcherConfiguration config
         2: .line 67
            aload 4 /* config */
            ifnull 4
         3: .line 68
            aload 4 /* config */
            invokevirtual org.ehcache.impl.config.event.DefaultCacheEventDispatcherConfiguration.getThreadPoolAlias:()Ljava/lang/String;
            astore 3 /* threadPoolAlias */
         4: .line 71
      StackMap locals: java.lang.String org.ehcache.impl.config.event.DefaultCacheEventDispatcherConfiguration
      StackMap stack:
            aload 0 /* this */
            getfield org.ehcache.impl.internal.events.CacheEventDispatcherFactoryImpl.executionService:Lorg/ehcache/core/spi/service/ExecutionService;
            aload 3 /* threadPoolAlias */
            new java.util.concurrent.LinkedBlockingQueue
            dup
            invokespecial java.util.concurrent.LinkedBlockingQueue.<init>:()V
            invokeinterface org.ehcache.core.spi.service.ExecutionService.getOrderedExecutor:(Ljava/lang/String;Ljava/util/concurrent/BlockingQueue;)Ljava/util/concurrent/ExecutorService;
            astore 5 /* orderedExecutor */
        start local 5 // java.util.concurrent.ExecutorService orderedExecutor
         5: .line 72
            aload 0 /* this */
            getfield org.ehcache.impl.internal.events.CacheEventDispatcherFactoryImpl.executionService:Lorg/ehcache/core/spi/service/ExecutionService;
            aload 3 /* threadPoolAlias */
            new java.util.concurrent.LinkedBlockingQueue
            dup
            invokespecial java.util.concurrent.LinkedBlockingQueue.<init>:()V
            invokeinterface org.ehcache.core.spi.service.ExecutionService.getUnorderedExecutor:(Ljava/lang/String;Ljava/util/concurrent/BlockingQueue;)Ljava/util/concurrent/ExecutorService;
            astore 6 /* unOrderedExecutor */
        start local 6 // java.util.concurrent.ExecutorService unOrderedExecutor
         6: .line 74
            new org.ehcache.impl.events.CacheEventDispatcherImpl
            dup
            aload 6 /* unOrderedExecutor */
            aload 5 /* orderedExecutor */
            invokespecial org.ehcache.impl.events.CacheEventDispatcherImpl.<init>:(Ljava/util/concurrent/ExecutorService;Ljava/util/concurrent/ExecutorService;)V
            areturn
        end local 6 // java.util.concurrent.ExecutorService unOrderedExecutor
        end local 5 // java.util.concurrent.ExecutorService orderedExecutor
        end local 4 // org.ehcache.impl.config.event.DefaultCacheEventDispatcherConfiguration config
        end local 3 // java.lang.String threadPoolAlias
        end local 2 // org.ehcache.spi.service.ServiceConfiguration[] serviceConfigs
        end local 1 // org.ehcache.core.spi.store.Store store
        end local 0 // org.ehcache.impl.internal.events.CacheEventDispatcherFactoryImpl this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    7     0               this  Lorg/ehcache/impl/internal/events/CacheEventDispatcherFactoryImpl;
            0    7     1              store  Lorg/ehcache/core/spi/store/Store<TK;TV;>;
            0    7     2     serviceConfigs  [Lorg/ehcache/spi/service/ServiceConfiguration;
            1    7     3    threadPoolAlias  Ljava/lang/String;
            2    7     4             config  Lorg/ehcache/impl/config/event/DefaultCacheEventDispatcherConfiguration;
            5    7     5    orderedExecutor  Ljava/util/concurrent/ExecutorService;
            6    7     6  unOrderedExecutor  Ljava/util/concurrent/ExecutorService;
    Signature: <K:Ljava/lang/Object;V:Ljava/lang/Object;>(Lorg/ehcache/core/spi/store/Store<TK;TV;>;[Lorg/ehcache/spi/service/ServiceConfiguration<**>;)Lorg/ehcache/core/events/CacheEventDispatcher<TK;TV;>;
    MethodParameters:
                Name  Flags
      store           
      serviceConfigs  

  public <K, V> void releaseCacheEventDispatcher(org.ehcache.core.events.CacheEventDispatcher<K, V>);
    descriptor: (Lorg/ehcache/core/events/CacheEventDispatcher;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.ehcache.impl.internal.events.CacheEventDispatcherFactoryImpl this
        start local 1 // org.ehcache.core.events.CacheEventDispatcher eventDispatcher
         0: .line 79
            aload 1 /* eventDispatcher */
            ifnull 2
         1: .line 80
            aload 1 /* eventDispatcher */
            invokeinterface org.ehcache.core.events.CacheEventDispatcher.shutdown:()V
         2: .line 82
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.ehcache.core.events.CacheEventDispatcher eventDispatcher
        end local 0 // org.ehcache.impl.internal.events.CacheEventDispatcherFactoryImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    3     0             this  Lorg/ehcache/impl/internal/events/CacheEventDispatcherFactoryImpl;
            0    3     1  eventDispatcher  Lorg/ehcache/core/events/CacheEventDispatcher<TK;TV;>;
    Signature: <K:Ljava/lang/Object;V:Ljava/lang/Object;>(Lorg/ehcache/core/events/CacheEventDispatcher<TK;TV;>;)V
    MethodParameters:
                 Name  Flags
      eventDispatcher  
}
SourceFile: "CacheEventDispatcherFactoryImpl.java"
    RuntimeVisibleAnnotations: 
      org.ehcache.spi.service.ServiceDependencies(value = {Lorg/ehcache/core/spi/service/ExecutionService;})