class ch.qos.logback.classic.turbo.ReconfigureOnChangeFilter$ReconfiguringThread implements java.lang.Runnable
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: ch.qos.logback.classic.turbo.ReconfigureOnChangeFilter$ReconfiguringThread
  super_class: java.lang.Object
{
  final ch.qos.logback.classic.turbo.ReconfigureOnChangeFilter this$0;
    descriptor: Lch/qos/logback/classic/turbo/ReconfigureOnChangeFilter;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  void <init>(ch.qos.logback.classic.turbo.ReconfigureOnChangeFilter);
    descriptor: (Lch/qos/logback/classic/turbo/ReconfigureOnChangeFilter;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // ch.qos.logback.classic.turbo.ReconfigureOnChangeFilter$ReconfiguringThread this
         0: .line 179
            aload 0 /* this */
            aload 1
            putfield ch.qos.logback.classic.turbo.ReconfigureOnChangeFilter$ReconfiguringThread.this$0:Lch/qos/logback/classic/turbo/ReconfigureOnChangeFilter;
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // ch.qos.logback.classic.turbo.ReconfigureOnChangeFilter$ReconfiguringThread this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lch/qos/logback/classic/turbo/ReconfigureOnChangeFilter$ReconfiguringThread;
    MethodParameters:
        Name  Flags
      this$0  final

  public void run();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // ch.qos.logback.classic.turbo.ReconfigureOnChangeFilter$ReconfiguringThread this
         0: .line 181
            aload 0 /* this */
            getfield ch.qos.logback.classic.turbo.ReconfigureOnChangeFilter$ReconfiguringThread.this$0:Lch/qos/logback/classic/turbo/ReconfigureOnChangeFilter;
            getfield ch.qos.logback.classic.turbo.ReconfigureOnChangeFilter.mainConfigurationURL:Ljava/net/URL;
            ifnonnull 3
         1: .line 182
            aload 0 /* this */
            getfield ch.qos.logback.classic.turbo.ReconfigureOnChangeFilter$ReconfiguringThread.this$0:Lch/qos/logback/classic/turbo/ReconfigureOnChangeFilter;
            ldc "Due to missing top level configuration file, skipping reconfiguration"
            invokevirtual ch.qos.logback.classic.turbo.ReconfigureOnChangeFilter.addInfo:(Ljava/lang/String;)V
         2: .line 183
            return
         3: .line 185
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield ch.qos.logback.classic.turbo.ReconfigureOnChangeFilter$ReconfiguringThread.this$0:Lch/qos/logback/classic/turbo/ReconfigureOnChangeFilter;
            invokestatic ch.qos.logback.classic.turbo.ReconfigureOnChangeFilter.access$0:(Lch/qos/logback/classic/turbo/ReconfigureOnChangeFilter;)Lch/qos/logback/core/Context;
            checkcast ch.qos.logback.classic.LoggerContext
            astore 1 /* lc */
        start local 1 // ch.qos.logback.classic.LoggerContext lc
         4: .line 186
            aload 0 /* this */
            getfield ch.qos.logback.classic.turbo.ReconfigureOnChangeFilter$ReconfiguringThread.this$0:Lch/qos/logback/classic/turbo/ReconfigureOnChangeFilter;
            new java.lang.StringBuilder
            dup
            ldc "Will reset and reconfigure context named ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield ch.qos.logback.classic.turbo.ReconfigureOnChangeFilter$ReconfiguringThread.this$0:Lch/qos/logback/classic/turbo/ReconfigureOnChangeFilter;
            invokestatic ch.qos.logback.classic.turbo.ReconfigureOnChangeFilter.access$0:(Lch/qos/logback/classic/turbo/ReconfigureOnChangeFilter;)Lch/qos/logback/core/Context;
            invokeinterface ch.qos.logback.core.Context.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual ch.qos.logback.classic.turbo.ReconfigureOnChangeFilter.addInfo:(Ljava/lang/String;)V
         5: .line 187
            aload 0 /* this */
            getfield ch.qos.logback.classic.turbo.ReconfigureOnChangeFilter$ReconfiguringThread.this$0:Lch/qos/logback/classic/turbo/ReconfigureOnChangeFilter;
            getfield ch.qos.logback.classic.turbo.ReconfigureOnChangeFilter.mainConfigurationURL:Ljava/net/URL;
            invokevirtual java.net.URL.toString:()Ljava/lang/String;
            ldc "xml"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 8
         6: .line 188
            aload 0 /* this */
            aload 1 /* lc */
            invokevirtual ch.qos.logback.classic.turbo.ReconfigureOnChangeFilter$ReconfiguringThread.performXMLConfiguration:(Lch/qos/logback/classic/LoggerContext;)V
         7: .line 189
            goto 14
      StackMap locals: ch.qos.logback.classic.LoggerContext
      StackMap stack:
         8: aload 0 /* this */
            getfield ch.qos.logback.classic.turbo.ReconfigureOnChangeFilter$ReconfiguringThread.this$0:Lch/qos/logback/classic/turbo/ReconfigureOnChangeFilter;
            getfield ch.qos.logback.classic.turbo.ReconfigureOnChangeFilter.mainConfigurationURL:Ljava/net/URL;
            invokevirtual java.net.URL.toString:()Ljava/lang/String;
            ldc "groovy"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 14
         9: .line 190
            invokestatic ch.qos.logback.classic.util.EnvUtil.isGroovyAvailable:()Z
            ifeq 13
        10: .line 191
            aload 1 /* lc */
            invokevirtual ch.qos.logback.classic.LoggerContext.reset:()V
        11: .line 194
            aload 1 /* lc */
            aload 0 /* this */
            aload 0 /* this */
            getfield ch.qos.logback.classic.turbo.ReconfigureOnChangeFilter$ReconfiguringThread.this$0:Lch/qos/logback/classic/turbo/ReconfigureOnChangeFilter;
            getfield ch.qos.logback.classic.turbo.ReconfigureOnChangeFilter.mainConfigurationURL:Ljava/net/URL;
            invokestatic ch.qos.logback.classic.gaffer.GafferUtil.runGafferConfiguratorOn:(Lch/qos/logback/classic/LoggerContext;Ljava/lang/Object;Ljava/net/URL;)V
        12: .line 195
            goto 14
        13: .line 196
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield ch.qos.logback.classic.turbo.ReconfigureOnChangeFilter$ReconfiguringThread.this$0:Lch/qos/logback/classic/turbo/ReconfigureOnChangeFilter;
            ldc "Groovy classes are not available on the class path. ABORTING INITIALIZATION."
            invokevirtual ch.qos.logback.classic.turbo.ReconfigureOnChangeFilter.addError:(Ljava/lang/String;)V
        14: .line 199
      StackMap locals:
      StackMap stack:
            return
        end local 1 // ch.qos.logback.classic.LoggerContext lc
        end local 0 // ch.qos.logback.classic.turbo.ReconfigureOnChangeFilter$ReconfiguringThread this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   15     0  this  Lch/qos/logback/classic/turbo/ReconfigureOnChangeFilter$ReconfiguringThread;
            4   15     1    lc  Lch/qos/logback/classic/LoggerContext;

  private void performXMLConfiguration(ch.qos.logback.classic.LoggerContext);
    descriptor: (Lch/qos/logback/classic/LoggerContext;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=8, args_size=2
        start local 0 // ch.qos.logback.classic.turbo.ReconfigureOnChangeFilter$ReconfiguringThread this
        start local 1 // ch.qos.logback.classic.LoggerContext lc
         0: .line 202
            new ch.qos.logback.classic.joran.JoranConfigurator
            dup
            invokespecial ch.qos.logback.classic.joran.JoranConfigurator.<init>:()V
            astore 2 /* jc */
        start local 2 // ch.qos.logback.classic.joran.JoranConfigurator jc
         1: .line 203
            aload 2 /* jc */
            aload 0 /* this */
            getfield ch.qos.logback.classic.turbo.ReconfigureOnChangeFilter$ReconfiguringThread.this$0:Lch/qos/logback/classic/turbo/ReconfigureOnChangeFilter;
            invokestatic ch.qos.logback.classic.turbo.ReconfigureOnChangeFilter.access$0:(Lch/qos/logback/classic/turbo/ReconfigureOnChangeFilter;)Lch/qos/logback/core/Context;
            invokevirtual ch.qos.logback.classic.joran.JoranConfigurator.setContext:(Lch/qos/logback/core/Context;)V
         2: .line 204
            new ch.qos.logback.core.status.StatusUtil
            dup
            aload 0 /* this */
            getfield ch.qos.logback.classic.turbo.ReconfigureOnChangeFilter$ReconfiguringThread.this$0:Lch/qos/logback/classic/turbo/ReconfigureOnChangeFilter;
            invokestatic ch.qos.logback.classic.turbo.ReconfigureOnChangeFilter.access$0:(Lch/qos/logback/classic/turbo/ReconfigureOnChangeFilter;)Lch/qos/logback/core/Context;
            invokespecial ch.qos.logback.core.status.StatusUtil.<init>:(Lch/qos/logback/core/Context;)V
            astore 3 /* statusUtil */
        start local 3 // ch.qos.logback.core.status.StatusUtil statusUtil
         3: .line 205
            aload 2 /* jc */
            invokevirtual ch.qos.logback.classic.joran.JoranConfigurator.recallSafeConfiguration:()Ljava/util/List;
            astore 4 /* eventList */
        start local 4 // java.util.List eventList
         4: .line 206
            aload 0 /* this */
            getfield ch.qos.logback.classic.turbo.ReconfigureOnChangeFilter$ReconfiguringThread.this$0:Lch/qos/logback/classic/turbo/ReconfigureOnChangeFilter;
            invokestatic ch.qos.logback.classic.turbo.ReconfigureOnChangeFilter.access$0:(Lch/qos/logback/classic/turbo/ReconfigureOnChangeFilter;)Lch/qos/logback/core/Context;
            invokestatic ch.qos.logback.core.joran.util.ConfigurationWatchListUtil.getMainWatchURL:(Lch/qos/logback/core/Context;)Ljava/net/URL;
            astore 5 /* mainURL */
        start local 5 // java.net.URL mainURL
         5: .line 207
            aload 1 /* lc */
            invokevirtual ch.qos.logback.classic.LoggerContext.reset:()V
         6: .line 208
            invokestatic java.lang.System.currentTimeMillis:()J
            lstore 6 /* threshold */
        start local 6 // long threshold
         7: .line 210
            aload 2 /* jc */
            aload 0 /* this */
            getfield ch.qos.logback.classic.turbo.ReconfigureOnChangeFilter$ReconfiguringThread.this$0:Lch/qos/logback/classic/turbo/ReconfigureOnChangeFilter;
            getfield ch.qos.logback.classic.turbo.ReconfigureOnChangeFilter.mainConfigurationURL:Ljava/net/URL;
            invokevirtual ch.qos.logback.classic.joran.JoranConfigurator.doConfigure:(Ljava/net/URL;)V
         8: .line 211
            aload 3 /* statusUtil */
            lload 6 /* threshold */
            invokevirtual ch.qos.logback.core.status.StatusUtil.hasXMLParsingErrors:(J)Z
            ifeq 13
         9: .line 212
            aload 0 /* this */
            aload 1 /* lc */
            aload 4 /* eventList */
            aload 5 /* mainURL */
            invokevirtual ch.qos.logback.classic.turbo.ReconfigureOnChangeFilter$ReconfiguringThread.fallbackConfiguration:(Lch/qos/logback/classic/LoggerContext;Ljava/util/List;Ljava/net/URL;)V
        10: .line 214
            goto 13
      StackMap locals: ch.qos.logback.classic.turbo.ReconfigureOnChangeFilter$ReconfiguringThread ch.qos.logback.classic.LoggerContext ch.qos.logback.classic.joran.JoranConfigurator ch.qos.logback.core.status.StatusUtil java.util.List java.net.URL long
      StackMap stack: ch.qos.logback.core.joran.spi.JoranException
        11: pop
        12: .line 215
            aload 0 /* this */
            aload 1 /* lc */
            aload 4 /* eventList */
            aload 5 /* mainURL */
            invokevirtual ch.qos.logback.classic.turbo.ReconfigureOnChangeFilter$ReconfiguringThread.fallbackConfiguration:(Lch/qos/logback/classic/LoggerContext;Ljava/util/List;Ljava/net/URL;)V
        13: .line 217
      StackMap locals:
      StackMap stack:
            return
        end local 6 // long threshold
        end local 5 // java.net.URL mainURL
        end local 4 // java.util.List eventList
        end local 3 // ch.qos.logback.core.status.StatusUtil statusUtil
        end local 2 // ch.qos.logback.classic.joran.JoranConfigurator jc
        end local 1 // ch.qos.logback.classic.LoggerContext lc
        end local 0 // ch.qos.logback.classic.turbo.ReconfigureOnChangeFilter$ReconfiguringThread this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   14     0        this  Lch/qos/logback/classic/turbo/ReconfigureOnChangeFilter$ReconfiguringThread;
            0   14     1          lc  Lch/qos/logback/classic/LoggerContext;
            1   14     2          jc  Lch/qos/logback/classic/joran/JoranConfigurator;
            3   14     3  statusUtil  Lch/qos/logback/core/status/StatusUtil;
            4   14     4   eventList  Ljava/util/List<Lch/qos/logback/core/joran/event/SaxEvent;>;
            5   14     5     mainURL  Ljava/net/URL;
            7   14     6   threshold  J
      Exception table:
        from    to  target  type
           7    10      11  Class ch.qos.logback.core.joran.spi.JoranException
    MethodParameters:
      Name  Flags
      lc    

  private void fallbackConfiguration(ch.qos.logback.classic.LoggerContext, java.util.List<ch.qos.logback.core.joran.event.SaxEvent>, java.net.URL);
    descriptor: (Lch/qos/logback/classic/LoggerContext;Ljava/util/List;Ljava/net/URL;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=4
        start local 0 // ch.qos.logback.classic.turbo.ReconfigureOnChangeFilter$ReconfiguringThread this
        start local 1 // ch.qos.logback.classic.LoggerContext lc
        start local 2 // java.util.List eventList
        start local 3 // java.net.URL mainURL
         0: .line 220
            new ch.qos.logback.classic.joran.JoranConfigurator
            dup
            invokespecial ch.qos.logback.classic.joran.JoranConfigurator.<init>:()V
            astore 4 /* joranConfigurator */
        start local 4 // ch.qos.logback.classic.joran.JoranConfigurator joranConfigurator
         1: .line 221
            aload 4 /* joranConfigurator */
            aload 0 /* this */
            getfield ch.qos.logback.classic.turbo.ReconfigureOnChangeFilter$ReconfiguringThread.this$0:Lch/qos/logback/classic/turbo/ReconfigureOnChangeFilter;
            invokestatic ch.qos.logback.classic.turbo.ReconfigureOnChangeFilter.access$0:(Lch/qos/logback/classic/turbo/ReconfigureOnChangeFilter;)Lch/qos/logback/core/Context;
            invokevirtual ch.qos.logback.classic.joran.JoranConfigurator.setContext:(Lch/qos/logback/core/Context;)V
         2: .line 222
            aload 2 /* eventList */
            ifnull 13
         3: .line 223
            aload 0 /* this */
            getfield ch.qos.logback.classic.turbo.ReconfigureOnChangeFilter$ReconfiguringThread.this$0:Lch/qos/logback/classic/turbo/ReconfigureOnChangeFilter;
            ldc "Falling back to previously registered safe configuration."
            invokevirtual ch.qos.logback.classic.turbo.ReconfigureOnChangeFilter.addWarn:(Ljava/lang/String;)V
         4: .line 225
            aload 1 /* lc */
            invokevirtual ch.qos.logback.classic.LoggerContext.reset:()V
         5: .line 226
            aload 0 /* this */
            getfield ch.qos.logback.classic.turbo.ReconfigureOnChangeFilter$ReconfiguringThread.this$0:Lch/qos/logback/classic/turbo/ReconfigureOnChangeFilter;
            invokestatic ch.qos.logback.classic.turbo.ReconfigureOnChangeFilter.access$0:(Lch/qos/logback/classic/turbo/ReconfigureOnChangeFilter;)Lch/qos/logback/core/Context;
            aload 3 /* mainURL */
            invokestatic ch.qos.logback.classic.joran.JoranConfigurator.informContextOfURLUsedForConfiguration:(Lch/qos/logback/core/Context;Ljava/net/URL;)V
         6: .line 227
            aload 4 /* joranConfigurator */
            aload 2 /* eventList */
            invokevirtual ch.qos.logback.classic.joran.JoranConfigurator.doConfigure:(Ljava/util/List;)V
         7: .line 228
            aload 0 /* this */
            getfield ch.qos.logback.classic.turbo.ReconfigureOnChangeFilter$ReconfiguringThread.this$0:Lch/qos/logback/classic/turbo/ReconfigureOnChangeFilter;
            ldc "Re-registering previous fallback configuration once more as a fallback configuration point"
            invokevirtual ch.qos.logback.classic.turbo.ReconfigureOnChangeFilter.addInfo:(Ljava/lang/String;)V
         8: .line 229
            aload 4 /* joranConfigurator */
            aload 2 /* eventList */
            invokevirtual ch.qos.logback.classic.joran.JoranConfigurator.registerSafeConfiguration:(Ljava/util/List;)V
         9: .line 230
            goto 14
      StackMap locals: ch.qos.logback.classic.turbo.ReconfigureOnChangeFilter$ReconfiguringThread ch.qos.logback.classic.LoggerContext java.util.List java.net.URL ch.qos.logback.classic.joran.JoranConfigurator
      StackMap stack: ch.qos.logback.core.joran.spi.JoranException
        10: astore 5 /* e */
        start local 5 // ch.qos.logback.core.joran.spi.JoranException e
        11: .line 231
            aload 0 /* this */
            getfield ch.qos.logback.classic.turbo.ReconfigureOnChangeFilter$ReconfiguringThread.this$0:Lch/qos/logback/classic/turbo/ReconfigureOnChangeFilter;
            ldc "Unexpected exception thrown by a configuration considered safe."
            aload 5 /* e */
            invokevirtual ch.qos.logback.classic.turbo.ReconfigureOnChangeFilter.addError:(Ljava/lang/String;Ljava/lang/Throwable;)V
        end local 5 // ch.qos.logback.core.joran.spi.JoranException e
        12: .line 233
            goto 14
        13: .line 234
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield ch.qos.logback.classic.turbo.ReconfigureOnChangeFilter$ReconfiguringThread.this$0:Lch/qos/logback/classic/turbo/ReconfigureOnChangeFilter;
            ldc "No previous configuration to fall back on."
            invokevirtual ch.qos.logback.classic.turbo.ReconfigureOnChangeFilter.addWarn:(Ljava/lang/String;)V
        14: .line 236
      StackMap locals:
      StackMap stack:
            return
        end local 4 // ch.qos.logback.classic.joran.JoranConfigurator joranConfigurator
        end local 3 // java.net.URL mainURL
        end local 2 // java.util.List eventList
        end local 1 // ch.qos.logback.classic.LoggerContext lc
        end local 0 // ch.qos.logback.classic.turbo.ReconfigureOnChangeFilter$ReconfiguringThread this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   15     0               this  Lch/qos/logback/classic/turbo/ReconfigureOnChangeFilter$ReconfiguringThread;
            0   15     1                 lc  Lch/qos/logback/classic/LoggerContext;
            0   15     2          eventList  Ljava/util/List<Lch/qos/logback/core/joran/event/SaxEvent;>;
            0   15     3            mainURL  Ljava/net/URL;
            1   15     4  joranConfigurator  Lch/qos/logback/classic/joran/JoranConfigurator;
           11   12     5                  e  Lch/qos/logback/core/joran/spi/JoranException;
      Exception table:
        from    to  target  type
           4     9      10  Class ch.qos.logback.core.joran.spi.JoranException
    Signature: (Lch/qos/logback/classic/LoggerContext;Ljava/util/List<Lch/qos/logback/core/joran/event/SaxEvent;>;Ljava/net/URL;)V
    MethodParameters:
           Name  Flags
      lc         
      eventList  
      mainURL    
}
SourceFile: "ReconfigureOnChangeFilter.java"
NestHost: ch.qos.logback.classic.turbo.ReconfigureOnChangeFilter
InnerClasses:
  ReconfiguringThread = ch.qos.logback.classic.turbo.ReconfigureOnChangeFilter$ReconfiguringThread of ch.qos.logback.classic.turbo.ReconfigureOnChangeFilter