public abstract class org.apache.logging.log4j.core.util.AbstractWatcher implements org.apache.logging.log4j.core.util.Watcher
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.apache.logging.log4j.core.util.AbstractWatcher
  super_class: java.lang.Object
{
  private final org.apache.logging.log4j.core.config.Reconfigurable reconfigurable;
    descriptor: Lorg/apache/logging/log4j/core/config/Reconfigurable;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.List<org.apache.logging.log4j.core.config.ConfigurationListener> configurationListeners;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Lorg/apache/logging/log4j/core/config/ConfigurationListener;>;

  private final org.apache.logging.log4j.core.util.Log4jThreadFactory threadFactory;
    descriptor: Lorg/apache/logging/log4j/core/util/Log4jThreadFactory;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.apache.logging.log4j.core.config.Configuration configuration;
    descriptor: Lorg/apache/logging/log4j/core/config/Configuration;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private org.apache.logging.log4j.core.util.Source source;
    descriptor: Lorg/apache/logging/log4j/core/util/Source;
    flags: (0x0002) ACC_PRIVATE

  public void <init>(org.apache.logging.log4j.core.config.Configuration, org.apache.logging.log4j.core.config.Reconfigurable, java.util.List<org.apache.logging.log4j.core.config.ConfigurationListener>);
    descriptor: (Lorg/apache/logging/log4j/core/config/Configuration;Lorg/apache/logging/log4j/core/config/Reconfigurable;Ljava/util/List;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // org.apache.logging.log4j.core.util.AbstractWatcher this
        start local 1 // org.apache.logging.log4j.core.config.Configuration configuration
        start local 2 // org.apache.logging.log4j.core.config.Reconfigurable reconfigurable
        start local 3 // java.util.List configurationListeners
         0: .line 37
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 39
            aload 0 /* this */
            aload 1 /* configuration */
            putfield org.apache.logging.log4j.core.util.AbstractWatcher.configuration:Lorg/apache/logging/log4j/core/config/Configuration;
         2: .line 40
            aload 0 /* this */
            aload 2 /* reconfigurable */
            putfield org.apache.logging.log4j.core.util.AbstractWatcher.reconfigurable:Lorg/apache/logging/log4j/core/config/Reconfigurable;
         3: .line 41
            aload 0 /* this */
            aload 3 /* configurationListeners */
            putfield org.apache.logging.log4j.core.util.AbstractWatcher.configurationListeners:Ljava/util/List;
         4: .line 42
            aload 0 /* this */
            aload 3 /* configurationListeners */
            ifnull 6
         5: .line 43
            ldc "ConfiguratonFileWatcher"
            invokestatic org.apache.logging.log4j.core.util.Log4jThreadFactory.createDaemonThreadFactory:(Ljava/lang/String;)Lorg/apache/logging/log4j/core/util/Log4jThreadFactory;
            goto 7
      StackMap locals: org.apache.logging.log4j.core.util.AbstractWatcher org.apache.logging.log4j.core.config.Configuration org.apache.logging.log4j.core.config.Reconfigurable java.util.List
      StackMap stack: org.apache.logging.log4j.core.util.AbstractWatcher
         6: aconst_null
         7: .line 42
      StackMap locals: org.apache.logging.log4j.core.util.AbstractWatcher org.apache.logging.log4j.core.config.Configuration org.apache.logging.log4j.core.config.Reconfigurable java.util.List
      StackMap stack: org.apache.logging.log4j.core.util.AbstractWatcher org.apache.logging.log4j.core.util.Log4jThreadFactory
            putfield org.apache.logging.log4j.core.util.AbstractWatcher.threadFactory:Lorg/apache/logging/log4j/core/util/Log4jThreadFactory;
         8: .line 44
            return
        end local 3 // java.util.List configurationListeners
        end local 2 // org.apache.logging.log4j.core.config.Reconfigurable reconfigurable
        end local 1 // org.apache.logging.log4j.core.config.Configuration configuration
        end local 0 // org.apache.logging.log4j.core.util.AbstractWatcher this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    9     0                    this  Lorg/apache/logging/log4j/core/util/AbstractWatcher;
            0    9     1           configuration  Lorg/apache/logging/log4j/core/config/Configuration;
            0    9     2          reconfigurable  Lorg/apache/logging/log4j/core/config/Reconfigurable;
            0    9     3  configurationListeners  Ljava/util/List<Lorg/apache/logging/log4j/core/config/ConfigurationListener;>;
    Signature: (Lorg/apache/logging/log4j/core/config/Configuration;Lorg/apache/logging/log4j/core/config/Reconfigurable;Ljava/util/List<Lorg/apache/logging/log4j/core/config/ConfigurationListener;>;)V
    MethodParameters:
                        Name  Flags
      configuration           final
      reconfigurable          final
      configurationListeners  final

  public java.util.List<org.apache.logging.log4j.core.config.ConfigurationListener> getListeners();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.logging.log4j.core.util.AbstractWatcher this
         0: .line 48
            aload 0 /* this */
            getfield org.apache.logging.log4j.core.util.AbstractWatcher.configurationListeners:Ljava/util/List;
            areturn
        end local 0 // org.apache.logging.log4j.core.util.AbstractWatcher this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/logging/log4j/core/util/AbstractWatcher;
    Signature: ()Ljava/util/List<Lorg/apache/logging/log4j/core/config/ConfigurationListener;>;

  public void modified();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=1
        start local 0 // org.apache.logging.log4j.core.util.AbstractWatcher this
         0: .line 53
            aload 0 /* this */
            getfield org.apache.logging.log4j.core.util.AbstractWatcher.configurationListeners:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 2
            goto 4
      StackMap locals: org.apache.logging.log4j.core.util.AbstractWatcher top java.util.Iterator
      StackMap stack:
         1: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.logging.log4j.core.config.ConfigurationListener
            astore 1 /* configurationListener */
        start local 1 // org.apache.logging.log4j.core.config.ConfigurationListener configurationListener
         2: .line 54
            aload 0 /* this */
            getfield org.apache.logging.log4j.core.util.AbstractWatcher.threadFactory:Lorg/apache/logging/log4j/core/util/Log4jThreadFactory;
            new org.apache.logging.log4j.core.util.AbstractWatcher$ReconfigurationRunnable
            dup
            aload 1 /* configurationListener */
            aload 0 /* this */
            getfield org.apache.logging.log4j.core.util.AbstractWatcher.reconfigurable:Lorg/apache/logging/log4j/core/config/Reconfigurable;
            invokespecial org.apache.logging.log4j.core.util.AbstractWatcher$ReconfigurationRunnable.<init>:(Lorg/apache/logging/log4j/core/config/ConfigurationListener;Lorg/apache/logging/log4j/core/config/Reconfigurable;)V
            invokevirtual org.apache.logging.log4j.core.util.Log4jThreadFactory.newThread:(Ljava/lang/Runnable;)Ljava/lang/Thread;
            astore 3 /* thread */
        start local 3 // java.lang.Thread thread
         3: .line 55
            aload 3 /* thread */
            invokevirtual java.lang.Thread.start:()V
        end local 3 // java.lang.Thread thread
        end local 1 // org.apache.logging.log4j.core.config.ConfigurationListener configurationListener
         4: .line 53
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         5: .line 57
            return
        end local 0 // org.apache.logging.log4j.core.util.AbstractWatcher this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    6     0                   this  Lorg/apache/logging/log4j/core/util/AbstractWatcher;
            2    4     1  configurationListener  Lorg/apache/logging/log4j/core/config/ConfigurationListener;
            3    4     3                 thread  Ljava/lang/Thread;

  public org.apache.logging.log4j.core.config.Configuration getConfiguration();
    descriptor: ()Lorg/apache/logging/log4j/core/config/Configuration;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.logging.log4j.core.util.AbstractWatcher this
         0: .line 60
            aload 0 /* this */
            getfield org.apache.logging.log4j.core.util.AbstractWatcher.configuration:Lorg/apache/logging/log4j/core/config/Configuration;
            areturn
        end local 0 // org.apache.logging.log4j.core.util.AbstractWatcher this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/logging/log4j/core/util/AbstractWatcher;

  public abstract long getLastModified();
    descriptor: ()J
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract boolean isModified();
    descriptor: ()Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public void watching(org.apache.logging.log4j.core.util.Source);
    descriptor: (Lorg/apache/logging/log4j/core/util/Source;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.logging.log4j.core.util.AbstractWatcher this
        start local 1 // org.apache.logging.log4j.core.util.Source source
         0: .line 69
            aload 0 /* this */
            aload 1 /* source */
            putfield org.apache.logging.log4j.core.util.AbstractWatcher.source:Lorg/apache/logging/log4j/core/util/Source;
         1: .line 70
            return
        end local 1 // org.apache.logging.log4j.core.util.Source source
        end local 0 // org.apache.logging.log4j.core.util.AbstractWatcher this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/apache/logging/log4j/core/util/AbstractWatcher;
            0    2     1  source  Lorg/apache/logging/log4j/core/util/Source;
    MethodParameters:
        Name  Flags
      source  

  public org.apache.logging.log4j.core.util.Source getSource();
    descriptor: ()Lorg/apache/logging/log4j/core/util/Source;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.logging.log4j.core.util.AbstractWatcher this
         0: .line 74
            aload 0 /* this */
            getfield org.apache.logging.log4j.core.util.AbstractWatcher.source:Lorg/apache/logging/log4j/core/util/Source;
            areturn
        end local 0 // org.apache.logging.log4j.core.util.AbstractWatcher this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/logging/log4j/core/util/AbstractWatcher;
}
SourceFile: "AbstractWatcher.java"
NestMembers:
  org.apache.logging.log4j.core.util.AbstractWatcher$ReconfigurationRunnable
InnerClasses:
  public ReconfigurationRunnable = org.apache.logging.log4j.core.util.AbstractWatcher$ReconfigurationRunnable of org.apache.logging.log4j.core.util.AbstractWatcher