public class io.dropwizard.logging.LoggingUtil
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: io.dropwizard.logging.LoggingUtil
  super_class: java.lang.Object
{
  private static final io.dropwizard.util.Duration LOGGER_CONTEXT_AWAITING_TIMEOUT;
    descriptor: Lio/dropwizard/util/Duration;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final io.dropwizard.util.Duration LOGGER_CONTEXT_AWAITING_SLEEP_TIME;
    descriptor: Lio/dropwizard/util/Duration;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static boolean julHijacked;
    descriptor: Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    RuntimeInvisibleAnnotations: 
      javax.annotation.concurrent.GuardedBy(value = "JUL_HIJACKING_LOCK")

  private static final java.util.concurrent.locks.Lock JUL_HIJACKING_LOCK;
    descriptor: Ljava/util/concurrent/locks/Lock;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 14
            ldc 10
            invokestatic io.dropwizard.util.Duration.seconds:(J)Lio/dropwizard/util/Duration;
            putstatic io.dropwizard.logging.LoggingUtil.LOGGER_CONTEXT_AWAITING_TIMEOUT:Lio/dropwizard/util/Duration;
         1: .line 15
            ldc 100
            invokestatic io.dropwizard.util.Duration.milliseconds:(J)Lio/dropwizard/util/Duration;
            putstatic io.dropwizard.logging.LoggingUtil.LOGGER_CONTEXT_AWAITING_SLEEP_TIME:Lio/dropwizard/util/Duration;
         2: .line 18
            iconst_0
            putstatic io.dropwizard.logging.LoggingUtil.julHijacked:Z
         3: .line 19
            new java.util.concurrent.locks.ReentrantLock
            dup
            invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
            putstatic io.dropwizard.logging.LoggingUtil.JUL_HIJACKING_LOCK:Ljava/util/concurrent/locks/Lock;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.dropwizard.logging.LoggingUtil this
         0: .line 21
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 22
            return
        end local 0 // io.dropwizard.logging.LoggingUtil this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/dropwizard/logging/LoggingUtil;

  public static ch.qos.logback.classic.LoggerContext getLoggerContext();
    descriptor: ()Lch/qos/logback/classic/LoggerContext;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=0
         0: .line 39
            invokestatic java.lang.System.nanoTime:()J
            lstore 0 /* startTime */
        start local 0 // long startTime
         1: .line 41
      StackMap locals: long
      StackMap stack:
            invokestatic org.slf4j.LoggerFactory.getILoggerFactory:()Lorg/slf4j/ILoggerFactory;
            astore 2 /* iLoggerFactory */
        start local 2 // org.slf4j.ILoggerFactory iLoggerFactory
         2: .line 42
            aload 2 /* iLoggerFactory */
            instanceof ch.qos.logback.classic.LoggerContext
            ifeq 4
         3: .line 43
            aload 2 /* iLoggerFactory */
            checkcast ch.qos.logback.classic.LoggerContext
            areturn
         4: .line 45
      StackMap locals: org.slf4j.ILoggerFactory
      StackMap stack:
            invokestatic java.lang.System.nanoTime:()J
            lload 0 /* startTime */
            lsub
            getstatic io.dropwizard.logging.LoggingUtil.LOGGER_CONTEXT_AWAITING_TIMEOUT:Lio/dropwizard/util/Duration;
            invokevirtual io.dropwizard.util.Duration.toNanoseconds:()J
            lcmp
            ifle 6
         5: .line 46
            new java.lang.IllegalStateException
            dup
            ldc "Unable to acquire the logger context"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 49
      StackMap locals:
      StackMap stack:
            getstatic io.dropwizard.logging.LoggingUtil.LOGGER_CONTEXT_AWAITING_SLEEP_TIME:Lio/dropwizard/util/Duration;
            invokevirtual io.dropwizard.util.Duration.toMilliseconds:()J
            invokestatic java.lang.Thread.sleep:(J)V
         7: .line 50
            goto 1
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
         8: astore 3 /* e */
        start local 3 // java.lang.InterruptedException e
         9: .line 51
            new java.lang.IllegalStateException
            dup
            aload 3 /* e */
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 3 // java.lang.InterruptedException e
        end local 2 // org.slf4j.ILoggerFactory iLoggerFactory
        end local 0 // long startTime
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            1   10     0       startTime  J
            2   10     2  iLoggerFactory  Lorg/slf4j/ILoggerFactory;
            9   10     3               e  Ljava/lang/InterruptedException;
      Exception table:
        from    to  target  type
           6     7       8  Class java.lang.InterruptedException

  public static void hijackJDKLogging();
    descriptor: ()V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=0
         0: .line 63
            getstatic io.dropwizard.logging.LoggingUtil.JUL_HIJACKING_LOCK:Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.lock:()V
         1: .line 65
            getstatic io.dropwizard.logging.LoggingUtil.julHijacked:Z
            ifne 9
         2: .line 66
            invokestatic org.slf4j.bridge.SLF4JBridgeHandler.removeHandlersForRootLogger:()V
         3: .line 67
            invokestatic org.slf4j.bridge.SLF4JBridgeHandler.install:()V
         4: .line 68
            iconst_1
            putstatic io.dropwizard.logging.LoggingUtil.julHijacked:Z
         5: .line 70
            goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: astore 0
         7: .line 71
            getstatic io.dropwizard.logging.LoggingUtil.JUL_HIJACKING_LOCK:Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
         8: .line 72
            aload 0
            athrow
         9: .line 71
      StackMap locals:
      StackMap stack:
            getstatic io.dropwizard.logging.LoggingUtil.JUL_HIJACKING_LOCK:Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
        10: .line 73
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           1     6       6  any
}
SourceFile: "LoggingUtil.java"