class org.apache.cassandra.db.compaction.CompactionManager$CompactionExecutor extends org.apache.cassandra.concurrent.JMXEnabledThreadPoolExecutor
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.apache.cassandra.db.compaction.CompactionManager$CompactionExecutor
  super_class: org.apache.cassandra.concurrent.JMXEnabledThreadPoolExecutor
{
  protected void <init>(int, int, java.lang.String, java.util.concurrent.BlockingQueue<java.lang.Runnable>);
    descriptor: (IILjava/lang/String;Ljava/util/concurrent/BlockingQueue;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=11, locals=5, args_size=5
        start local 0 // org.apache.cassandra.db.compaction.CompactionManager$CompactionExecutor this
        start local 1 // int minThreads
        start local 2 // int maxThreads
        start local 3 // java.lang.String name
        start local 4 // java.util.concurrent.BlockingQueue queue
         0: .line 1846
            aload 0 /* this */
            iload 1 /* minThreads */
            iload 2 /* maxThreads */
            ldc 60
            getstatic java.util.concurrent.TimeUnit.SECONDS:Ljava/util/concurrent/TimeUnit;
            aload 4 /* queue */
            new org.apache.cassandra.concurrent.NamedThreadFactory
            dup
            aload 3 /* name */
            iconst_1
            invokespecial org.apache.cassandra.concurrent.NamedThreadFactory.<init>:(Ljava/lang/String;I)V
            ldc "internal"
            invokespecial org.apache.cassandra.concurrent.JMXEnabledThreadPoolExecutor.<init>:(IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;Lorg/apache/cassandra/concurrent/NamedThreadFactory;Ljava/lang/String;)V
         1: .line 1847
            return
        end local 4 // java.util.concurrent.BlockingQueue queue
        end local 3 // java.lang.String name
        end local 2 // int maxThreads
        end local 1 // int minThreads
        end local 0 // org.apache.cassandra.db.compaction.CompactionManager$CompactionExecutor this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lorg/apache/cassandra/db/compaction/CompactionManager$CompactionExecutor;
            0    2     1  minThreads  I
            0    2     2  maxThreads  I
            0    2     3        name  Ljava/lang/String;
            0    2     4       queue  Ljava/util/concurrent/BlockingQueue<Ljava/lang/Runnable;>;
    Signature: (IILjava/lang/String;Ljava/util/concurrent/BlockingQueue<Ljava/lang/Runnable;>;)V
    MethodParameters:
            Name  Flags
      minThreads  
      maxThreads  
      name        
      queue       

  private void <init>(int, java.lang.String);
    descriptor: (ILjava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // org.apache.cassandra.db.compaction.CompactionManager$CompactionExecutor this
        start local 1 // int threadCount
        start local 2 // java.lang.String name
         0: .line 1851
            aload 0 /* this */
            iload 1 /* threadCount */
            iload 1 /* threadCount */
            aload 2 /* name */
            new java.util.concurrent.LinkedBlockingQueue
            dup
            invokespecial java.util.concurrent.LinkedBlockingQueue.<init>:()V
            invokespecial org.apache.cassandra.db.compaction.CompactionManager$CompactionExecutor.<init>:(IILjava/lang/String;Ljava/util/concurrent/BlockingQueue;)V
         1: .line 1852
            return
        end local 2 // java.lang.String name
        end local 1 // int threadCount
        end local 0 // org.apache.cassandra.db.compaction.CompactionManager$CompactionExecutor this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lorg/apache/cassandra/db/compaction/CompactionManager$CompactionExecutor;
            0    2     1  threadCount  I
            0    2     2         name  Ljava/lang/String;
    MethodParameters:
             Name  Flags
      threadCount  
      name         

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.cassandra.db.compaction.CompactionManager$CompactionExecutor this
         0: .line 1856
            aload 0 /* this */
            iconst_1
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getConcurrentCompactors:()I
            invokestatic java.lang.Math.max:(II)I
            ldc "CompactionExecutor"
            invokespecial org.apache.cassandra.db.compaction.CompactionManager$CompactionExecutor.<init>:(ILjava/lang/String;)V
         1: .line 1857
            return
        end local 0 // org.apache.cassandra.db.compaction.CompactionManager$CompactionExecutor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/cassandra/db/compaction/CompactionManager$CompactionExecutor;

  protected void beforeExecute(java.lang.Thread, java.lang.Runnable);
    descriptor: (Ljava/lang/Thread;Ljava/lang/Runnable;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.apache.cassandra.db.compaction.CompactionManager$CompactionExecutor this
        start local 1 // java.lang.Thread t
        start local 2 // java.lang.Runnable r
         0: .line 1862
            getstatic org.apache.cassandra.db.compaction.CompactionManager.isCompactionManager:Lio/netty/util/concurrent/FastThreadLocal;
            iconst_1
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokevirtual io.netty.util.concurrent.FastThreadLocal.set:(Ljava/lang/Object;)V
         1: .line 1863
            aload 0 /* this */
            aload 1 /* t */
            aload 2 /* r */
            invokespecial org.apache.cassandra.concurrent.JMXEnabledThreadPoolExecutor.beforeExecute:(Ljava/lang/Thread;Ljava/lang/Runnable;)V
         2: .line 1864
            return
        end local 2 // java.lang.Runnable r
        end local 1 // java.lang.Thread t
        end local 0 // org.apache.cassandra.db.compaction.CompactionManager$CompactionExecutor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/cassandra/db/compaction/CompactionManager$CompactionExecutor;
            0    3     1     t  Ljava/lang/Thread;
            0    3     2     r  Ljava/lang/Runnable;
    MethodParameters:
      Name  Flags
      t     
      r     

  public void afterExecute(java.lang.Runnable, java.lang.Throwable);
    descriptor: (Ljava/lang/Runnable;Ljava/lang/Throwable;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.apache.cassandra.db.compaction.CompactionManager$CompactionExecutor this
        start local 1 // java.lang.Runnable r
        start local 2 // java.lang.Throwable t
         0: .line 1870
            aload 1 /* r */
            invokestatic org.apache.cassandra.concurrent.DebuggableThreadPoolExecutor.maybeResetTraceSessionWrapper:(Ljava/lang/Runnable;)V
         1: .line 1872
            aload 2 /* t */
            ifnonnull 3
         2: .line 1873
            aload 1 /* r */
            invokestatic org.apache.cassandra.concurrent.DebuggableThreadPoolExecutor.extractThrowable:(Ljava/lang/Runnable;)Ljava/lang/Throwable;
            astore 2 /* t */
         3: .line 1875
      StackMap locals:
      StackMap stack:
            aload 2 /* t */
            ifnull 11
         4: .line 1877
            aload 2 /* t */
            instanceof org.apache.cassandra.db.compaction.CompactionInterruptedException
            ifeq 10
         5: .line 1879
            getstatic org.apache.cassandra.db.compaction.CompactionManager$CompactionExecutor.logger:Lorg/slf4j/Logger;
            aload 2 /* t */
            invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;)V
         6: .line 1880
            aload 2 /* t */
            invokevirtual java.lang.Throwable.getSuppressed:()[Ljava/lang/Throwable;
            ifnull 8
            aload 2 /* t */
            invokevirtual java.lang.Throwable.getSuppressed:()[Ljava/lang/Throwable;
            arraylength
            ifle 8
         7: .line 1881
            getstatic org.apache.cassandra.db.compaction.CompactionManager$CompactionExecutor.logger:Lorg/slf4j/Logger;
            ldc "Interruption of compaction encountered exceptions:"
            aload 2 /* t */
            invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;Ljava/lang/Throwable;)V
            goto 11
         8: .line 1883
      StackMap locals:
      StackMap stack:
            getstatic org.apache.cassandra.db.compaction.CompactionManager$CompactionExecutor.logger:Lorg/slf4j/Logger;
            ldc "Full interruption stack trace:"
            aload 2 /* t */
            invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Throwable;)V
         9: .line 1884
            goto 11
        10: .line 1887
      StackMap locals:
      StackMap stack:
            aload 2 /* t */
            invokestatic org.apache.cassandra.concurrent.DebuggableThreadPoolExecutor.handleOrLog:(Ljava/lang/Throwable;)V
        11: .line 1893
      StackMap locals:
      StackMap stack:
            invokestatic org.apache.cassandra.io.sstable.SnapshotDeletingTask.rescheduleFailedTasks:()V
        12: .line 1894
            return
        end local 2 // java.lang.Throwable t
        end local 1 // java.lang.Runnable r
        end local 0 // org.apache.cassandra.db.compaction.CompactionManager$CompactionExecutor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  this  Lorg/apache/cassandra/db/compaction/CompactionManager$CompactionExecutor;
            0   13     1     r  Ljava/lang/Runnable;
            0   13     2     t  Ljava/lang/Throwable;
    MethodParameters:
      Name  Flags
      r     
      t     

  public com.google.common.util.concurrent.ListenableFuture<?> submitIfRunning(java.lang.Runnable, java.lang.String);
    descriptor: (Ljava/lang/Runnable;Ljava/lang/String;)Lcom/google/common/util/concurrent/ListenableFuture;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.apache.cassandra.db.compaction.CompactionManager$CompactionExecutor this
        start local 1 // java.lang.Runnable task
        start local 2 // java.lang.String name
         0: .line 1898
            aload 0 /* this */
            aload 1 /* task */
            aconst_null
            invokestatic java.util.concurrent.Executors.callable:(Ljava/lang/Runnable;Ljava/lang/Object;)Ljava/util/concurrent/Callable;
            aload 2 /* name */
            invokevirtual org.apache.cassandra.db.compaction.CompactionManager$CompactionExecutor.submitIfRunning:(Ljava/util/concurrent/Callable;Ljava/lang/String;)Lcom/google/common/util/concurrent/ListenableFuture;
            areturn
        end local 2 // java.lang.String name
        end local 1 // java.lang.Runnable task
        end local 0 // org.apache.cassandra.db.compaction.CompactionManager$CompactionExecutor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/db/compaction/CompactionManager$CompactionExecutor;
            0    1     1  task  Ljava/lang/Runnable;
            0    1     2  name  Ljava/lang/String;
    Signature: (Ljava/lang/Runnable;Ljava/lang/String;)Lcom/google/common/util/concurrent/ListenableFuture<*>;
    MethodParameters:
      Name  Flags
      task  
      name  

  public com.google.common.util.concurrent.ListenableFuture<?> submitIfRunning(java.util.concurrent.Callable<?>, java.lang.String);
    descriptor: (Ljava/util/concurrent/Callable;Ljava/lang/String;)Lcom/google/common/util/concurrent/ListenableFuture;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.apache.cassandra.db.compaction.CompactionManager$CompactionExecutor this
        start local 1 // java.util.concurrent.Callable task
        start local 2 // java.lang.String name
         0: .line 1913
            aload 0 /* this */
            invokevirtual org.apache.cassandra.db.compaction.CompactionManager$CompactionExecutor.isShutdown:()Z
            ifeq 3
         1: .line 1915
            getstatic org.apache.cassandra.db.compaction.CompactionManager$CompactionExecutor.logger:Lorg/slf4j/Logger;
            ldc "Executor has been shut down, not submitting {}"
            aload 2 /* name */
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;)V
         2: .line 1916
            invokestatic com.google.common.util.concurrent.Futures.immediateCancelledFuture:()Lcom/google/common/util/concurrent/ListenableFuture;
            areturn
         3: .line 1921
      StackMap locals:
      StackMap stack:
            aload 1 /* task */
            invokestatic com.google.common.util.concurrent.ListenableFutureTask.create:(Ljava/util/concurrent/Callable;)Lcom/google/common/util/concurrent/ListenableFutureTask;
            astore 3 /* ret */
        start local 3 // com.google.common.util.concurrent.ListenableFutureTask ret
         4: .line 1922
            aload 0 /* this */
            aload 3 /* ret */
            invokevirtual org.apache.cassandra.db.compaction.CompactionManager$CompactionExecutor.execute:(Ljava/lang/Runnable;)V
         5: .line 1923
            aload 3 /* ret */
         6: areturn
        end local 3 // com.google.common.util.concurrent.ListenableFutureTask ret
         7: .line 1925
      StackMap locals:
      StackMap stack: java.util.concurrent.RejectedExecutionException
            astore 3 /* ex */
        start local 3 // java.util.concurrent.RejectedExecutionException ex
         8: .line 1927
            aload 0 /* this */
            invokevirtual org.apache.cassandra.db.compaction.CompactionManager$CompactionExecutor.isShutdown:()Z
            ifeq 10
         9: .line 1928
            getstatic org.apache.cassandra.db.compaction.CompactionManager$CompactionExecutor.logger:Lorg/slf4j/Logger;
            ldc "Executor has shut down, could not submit {}"
            aload 2 /* name */
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;)V
            goto 11
        10: .line 1930
      StackMap locals: java.util.concurrent.RejectedExecutionException
      StackMap stack:
            getstatic org.apache.cassandra.db.compaction.CompactionManager$CompactionExecutor.logger:Lorg/slf4j/Logger;
            ldc "Failed to submit {}"
            aload 2 /* name */
            aload 3 /* ex */
            invokeinterface org.slf4j.Logger.error:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        11: .line 1932
      StackMap locals:
      StackMap stack:
            invokestatic com.google.common.util.concurrent.Futures.immediateCancelledFuture:()Lcom/google/common/util/concurrent/ListenableFuture;
            areturn
        end local 3 // java.util.concurrent.RejectedExecutionException ex
        end local 2 // java.lang.String name
        end local 1 // java.util.concurrent.Callable task
        end local 0 // org.apache.cassandra.db.compaction.CompactionManager$CompactionExecutor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Lorg/apache/cassandra/db/compaction/CompactionManager$CompactionExecutor;
            0   12     1  task  Ljava/util/concurrent/Callable<*>;
            0   12     2  name  Ljava/lang/String;
            4    7     3   ret  Lcom/google/common/util/concurrent/ListenableFutureTask;
            8   12     3    ex  Ljava/util/concurrent/RejectedExecutionException;
      Exception table:
        from    to  target  type
           3     6       7  Class java.util.concurrent.RejectedExecutionException
    Signature: (Ljava/util/concurrent/Callable<*>;Ljava/lang/String;)Lcom/google/common/util/concurrent/ListenableFuture<*>;
    MethodParameters:
      Name  Flags
      task  
      name  
}
SourceFile: "CompactionManager.java"
NestHost: org.apache.cassandra.db.compaction.CompactionManager
InnerClasses:
  CompactionExecutor = org.apache.cassandra.db.compaction.CompactionManager$CompactionExecutor of org.apache.cassandra.db.compaction.CompactionManager