public class org.apache.commons.configuration.event.EventSource
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.commons.configuration.event.EventSource
  super_class: java.lang.Object
{
  private java.util.Collection<org.apache.commons.configuration.event.ConfigurationListener> listeners;
    descriptor: Ljava/util/Collection;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Collection<Lorg/apache/commons/configuration/event/ConfigurationListener;>;

  private java.util.Collection<org.apache.commons.configuration.event.ConfigurationErrorListener> errorListeners;
    descriptor: Ljava/util/Collection;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Collection<Lorg/apache/commons/configuration/event/ConfigurationErrorListener;>;

  private final java.lang.Object lockDetailEventsCount;
    descriptor: Ljava/lang/Object;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private int detailEvents;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.commons.configuration.event.EventSource this
         0: .line 87
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 79
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield org.apache.commons.configuration.event.EventSource.lockDetailEventsCount:Ljava/lang/Object;
         2: .line 89
            aload 0 /* this */
            invokevirtual org.apache.commons.configuration.event.EventSource.initListeners:()V
         3: .line 90
            return
        end local 0 // org.apache.commons.configuration.event.EventSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/apache/commons/configuration/event/EventSource;

  public void addConfigurationListener(org.apache.commons.configuration.event.ConfigurationListener);
    descriptor: (Lorg/apache/commons/configuration/event/ConfigurationListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.commons.configuration.event.EventSource this
        start local 1 // org.apache.commons.configuration.event.ConfigurationListener l
         0: .line 99
            aload 1 /* l */
            invokestatic org.apache.commons.configuration.event.EventSource.checkListener:(Ljava/lang/Object;)V
         1: .line 100
            aload 0 /* this */
            getfield org.apache.commons.configuration.event.EventSource.listeners:Ljava/util/Collection;
            aload 1 /* l */
            invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
            pop
         2: .line 101
            return
        end local 1 // org.apache.commons.configuration.event.ConfigurationListener l
        end local 0 // org.apache.commons.configuration.event.EventSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/commons/configuration/event/EventSource;
            0    3     1     l  Lorg/apache/commons/configuration/event/ConfigurationListener;
    MethodParameters:
      Name  Flags
      l     

  public boolean removeConfigurationListener(org.apache.commons.configuration.event.ConfigurationListener);
    descriptor: (Lorg/apache/commons/configuration/event/ConfigurationListener;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.commons.configuration.event.EventSource this
        start local 1 // org.apache.commons.configuration.event.ConfigurationListener l
         0: .line 112
            aload 0 /* this */
            getfield org.apache.commons.configuration.event.EventSource.listeners:Ljava/util/Collection;
            aload 1 /* l */
            invokeinterface java.util.Collection.remove:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // org.apache.commons.configuration.event.ConfigurationListener l
        end local 0 // org.apache.commons.configuration.event.EventSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/commons/configuration/event/EventSource;
            0    1     1     l  Lorg/apache/commons/configuration/event/ConfigurationListener;
    MethodParameters:
      Name  Flags
      l     

  public java.util.Collection<org.apache.commons.configuration.event.ConfigurationListener> getConfigurationListeners();
    descriptor: ()Ljava/util/Collection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.commons.configuration.event.EventSource this
         0: .line 126
            new java.util.ArrayList
            dup
            aload 0 /* this */
            getfield org.apache.commons.configuration.event.EventSource.listeners:Ljava/util/Collection;
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            invokestatic java.util.Collections.unmodifiableCollection:(Ljava/util/Collection;)Ljava/util/Collection;
            areturn
        end local 0 // org.apache.commons.configuration.event.EventSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/commons/configuration/event/EventSource;
    Signature: ()Ljava/util/Collection<Lorg/apache/commons/configuration/event/ConfigurationListener;>;

  public void clearConfigurationListeners();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.commons.configuration.event.EventSource this
         0: .line 134
            aload 0 /* this */
            getfield org.apache.commons.configuration.event.EventSource.listeners:Ljava/util/Collection;
            invokeinterface java.util.Collection.clear:()V
         1: .line 135
            return
        end local 0 // org.apache.commons.configuration.event.EventSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/commons/configuration/event/EventSource;

  public boolean isDetailEvents();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.commons.configuration.event.EventSource this
         0: .line 144
            aload 0 /* this */
            iconst_0
            invokevirtual org.apache.commons.configuration.event.EventSource.checkDetailEvents:(I)Z
            ireturn
        end local 0 // org.apache.commons.configuration.event.EventSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/commons/configuration/event/EventSource;

  public void setDetailEvents(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.apache.commons.configuration.event.EventSource this
        start local 1 // boolean enable
         0: .line 158
            aload 0 /* this */
            getfield org.apache.commons.configuration.event.EventSource.lockDetailEventsCount:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: .line 160
            iload 1 /* enable */
            ifeq 4
         2: .line 162
            aload 0 /* this */
            dup
            getfield org.apache.commons.configuration.event.EventSource.detailEvents:I
            iconst_1
            iadd
            putfield org.apache.commons.configuration.event.EventSource.detailEvents:I
         3: .line 163
            goto 5
         4: .line 166
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            dup
            getfield org.apache.commons.configuration.event.EventSource.detailEvents:I
            iconst_1
            isub
            putfield org.apache.commons.configuration.event.EventSource.detailEvents:I
         5: .line 158
      StackMap locals:
      StackMap stack:
            aload 2
            monitorexit
         6: goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: aload 2
            monitorexit
         8: athrow
         9: .line 169
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean enable
        end local 0 // org.apache.commons.configuration.event.EventSource this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0    this  Lorg/apache/commons/configuration/event/EventSource;
            0   10     1  enable  Z
      Exception table:
        from    to  target  type
           1     6       7  any
           7     8       7  any
    MethodParameters:
        Name  Flags
      enable  

  public void addErrorListener(org.apache.commons.configuration.event.ConfigurationErrorListener);
    descriptor: (Lorg/apache/commons/configuration/event/ConfigurationErrorListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.commons.configuration.event.EventSource this
        start local 1 // org.apache.commons.configuration.event.ConfigurationErrorListener l
         0: .line 180
            aload 1 /* l */
            invokestatic org.apache.commons.configuration.event.EventSource.checkListener:(Ljava/lang/Object;)V
         1: .line 181
            aload 0 /* this */
            getfield org.apache.commons.configuration.event.EventSource.errorListeners:Ljava/util/Collection;
            aload 1 /* l */
            invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
            pop
         2: .line 182
            return
        end local 1 // org.apache.commons.configuration.event.ConfigurationErrorListener l
        end local 0 // org.apache.commons.configuration.event.EventSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/commons/configuration/event/EventSource;
            0    3     1     l  Lorg/apache/commons/configuration/event/ConfigurationErrorListener;
    MethodParameters:
      Name  Flags
      l     

  public boolean removeErrorListener(org.apache.commons.configuration.event.ConfigurationErrorListener);
    descriptor: (Lorg/apache/commons/configuration/event/ConfigurationErrorListener;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.commons.configuration.event.EventSource this
        start local 1 // org.apache.commons.configuration.event.ConfigurationErrorListener l
         0: .line 194
            aload 0 /* this */
            getfield org.apache.commons.configuration.event.EventSource.errorListeners:Ljava/util/Collection;
            aload 1 /* l */
            invokeinterface java.util.Collection.remove:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // org.apache.commons.configuration.event.ConfigurationErrorListener l
        end local 0 // org.apache.commons.configuration.event.EventSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/commons/configuration/event/EventSource;
            0    1     1     l  Lorg/apache/commons/configuration/event/ConfigurationErrorListener;
    MethodParameters:
      Name  Flags
      l     

  public void clearErrorListeners();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.commons.configuration.event.EventSource this
         0: .line 204
            aload 0 /* this */
            getfield org.apache.commons.configuration.event.EventSource.errorListeners:Ljava/util/Collection;
            invokeinterface java.util.Collection.clear:()V
         1: .line 205
            return
        end local 0 // org.apache.commons.configuration.event.EventSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/commons/configuration/event/EventSource;

  public java.util.Collection<org.apache.commons.configuration.event.ConfigurationErrorListener> getErrorListeners();
    descriptor: ()Ljava/util/Collection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.commons.configuration.event.EventSource this
         0: .line 218
            new java.util.ArrayList
            dup
            aload 0 /* this */
            getfield org.apache.commons.configuration.event.EventSource.errorListeners:Ljava/util/Collection;
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            invokestatic java.util.Collections.unmodifiableCollection:(Ljava/util/Collection;)Ljava/util/Collection;
            areturn
        end local 0 // org.apache.commons.configuration.event.EventSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/commons/configuration/event/EventSource;
    Signature: ()Ljava/util/Collection<Lorg/apache/commons/configuration/event/ConfigurationErrorListener;>;

  protected void fireEvent(int, java.lang.String, java.lang.Object, boolean);
    descriptor: (ILjava/lang/String;Ljava/lang/Object;Z)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=7, args_size=5
        start local 0 // org.apache.commons.configuration.event.EventSource this
        start local 1 // int type
        start local 2 // java.lang.String propName
        start local 3 // java.lang.Object propValue
        start local 4 // boolean before
         0: .line 234
            aload 0 /* this */
            iconst_m1
            invokevirtual org.apache.commons.configuration.event.EventSource.checkDetailEvents:(I)Z
            ifeq 8
         1: .line 236
            aload 0 /* this */
            getfield org.apache.commons.configuration.event.EventSource.listeners:Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 5 /* it */
        start local 5 // java.util.Iterator it
         2: .line 237
            aload 5 /* it */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifeq 8
         3: .line 240
            aload 0 /* this */
            iload 1 /* type */
            aload 2 /* propName */
            aload 3 /* propValue */
            iload 4 /* before */
            invokevirtual org.apache.commons.configuration.event.EventSource.createEvent:(ILjava/lang/String;Ljava/lang/Object;Z)Lorg/apache/commons/configuration/event/ConfigurationEvent;
         4: .line 239
            astore 6 /* event */
        start local 6 // org.apache.commons.configuration.event.ConfigurationEvent event
         5: .line 241
            goto 7
         6: .line 243
      StackMap locals: java.util.Iterator org.apache.commons.configuration.event.ConfigurationEvent
      StackMap stack:
            aload 5 /* it */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.commons.configuration.event.ConfigurationListener
            aload 6 /* event */
            invokeinterface org.apache.commons.configuration.event.ConfigurationListener.configurationChanged:(Lorg/apache/commons/configuration/event/ConfigurationEvent;)V
         7: .line 241
      StackMap locals:
      StackMap stack:
            aload 5 /* it */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        end local 6 // org.apache.commons.configuration.event.ConfigurationEvent event
        end local 5 // java.util.Iterator it
         8: .line 247
      StackMap locals:
      StackMap stack:
            return
        end local 4 // boolean before
        end local 3 // java.lang.Object propValue
        end local 2 // java.lang.String propName
        end local 1 // int type
        end local 0 // org.apache.commons.configuration.event.EventSource this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    9     0       this  Lorg/apache/commons/configuration/event/EventSource;
            0    9     1       type  I
            0    9     2   propName  Ljava/lang/String;
            0    9     3  propValue  Ljava/lang/Object;
            0    9     4     before  Z
            2    8     5         it  Ljava/util/Iterator<Lorg/apache/commons/configuration/event/ConfigurationListener;>;
            5    8     6      event  Lorg/apache/commons/configuration/event/ConfigurationEvent;
    MethodParameters:
           Name  Flags
      type       
      propName   
      propValue  
      before     

  protected org.apache.commons.configuration.event.ConfigurationEvent createEvent(int, java.lang.String, java.lang.Object, boolean);
    descriptor: (ILjava/lang/String;Ljava/lang/Object;Z)Lorg/apache/commons/configuration/event/ConfigurationEvent;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=5, args_size=5
        start local 0 // org.apache.commons.configuration.event.EventSource this
        start local 1 // int type
        start local 2 // java.lang.String propName
        start local 3 // java.lang.Object propValue
        start local 4 // boolean before
         0: .line 262
            new org.apache.commons.configuration.event.ConfigurationEvent
            dup
            aload 0 /* this */
            iload 1 /* type */
            aload 2 /* propName */
            aload 3 /* propValue */
            iload 4 /* before */
            invokespecial org.apache.commons.configuration.event.ConfigurationEvent.<init>:(Ljava/lang/Object;ILjava/lang/String;Ljava/lang/Object;Z)V
            areturn
        end local 4 // boolean before
        end local 3 // java.lang.Object propValue
        end local 2 // java.lang.String propName
        end local 1 // int type
        end local 0 // org.apache.commons.configuration.event.EventSource this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Lorg/apache/commons/configuration/event/EventSource;
            0    1     1       type  I
            0    1     2   propName  Ljava/lang/String;
            0    1     3  propValue  Ljava/lang/Object;
            0    1     4     before  Z
    MethodParameters:
           Name  Flags
      type       
      propName   
      propValue  
      before     

  protected void fireError(int, java.lang.String, java.lang.Object, java.lang.Throwable);
    descriptor: (ILjava/lang/String;Ljava/lang/Object;Ljava/lang/Throwable;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=7, args_size=5
        start local 0 // org.apache.commons.configuration.event.EventSource this
        start local 1 // int type
        start local 2 // java.lang.String propName
        start local 3 // java.lang.Object propValue
        start local 4 // java.lang.Throwable ex
         0: .line 277
            aload 0 /* this */
            getfield org.apache.commons.configuration.event.EventSource.errorListeners:Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 5 /* it */
        start local 5 // java.util.Iterator it
         1: .line 278
            aload 5 /* it */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifeq 7
         2: .line 281
            aload 0 /* this */
            iload 1 /* type */
            aload 2 /* propName */
            aload 3 /* propValue */
            aload 4 /* ex */
            invokevirtual org.apache.commons.configuration.event.EventSource.createErrorEvent:(ILjava/lang/String;Ljava/lang/Object;Ljava/lang/Throwable;)Lorg/apache/commons/configuration/event/ConfigurationErrorEvent;
         3: .line 280
            astore 6 /* event */
        start local 6 // org.apache.commons.configuration.event.ConfigurationErrorEvent event
         4: .line 282
            goto 6
         5: .line 284
      StackMap locals: java.util.Iterator org.apache.commons.configuration.event.ConfigurationErrorEvent
      StackMap stack:
            aload 5 /* it */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.commons.configuration.event.ConfigurationErrorListener
            aload 6 /* event */
            invokeinterface org.apache.commons.configuration.event.ConfigurationErrorListener.configurationError:(Lorg/apache/commons/configuration/event/ConfigurationErrorEvent;)V
         6: .line 282
      StackMap locals:
      StackMap stack:
            aload 5 /* it */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        end local 6 // org.apache.commons.configuration.event.ConfigurationErrorEvent event
         7: .line 287
      StackMap locals:
      StackMap stack:
            return
        end local 5 // java.util.Iterator it
        end local 4 // java.lang.Throwable ex
        end local 3 // java.lang.Object propValue
        end local 2 // java.lang.String propName
        end local 1 // int type
        end local 0 // org.apache.commons.configuration.event.EventSource this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0       this  Lorg/apache/commons/configuration/event/EventSource;
            0    8     1       type  I
            0    8     2   propName  Ljava/lang/String;
            0    8     3  propValue  Ljava/lang/Object;
            0    8     4         ex  Ljava/lang/Throwable;
            1    8     5         it  Ljava/util/Iterator<Lorg/apache/commons/configuration/event/ConfigurationErrorListener;>;
            4    7     6      event  Lorg/apache/commons/configuration/event/ConfigurationErrorEvent;
    MethodParameters:
           Name  Flags
      type       
      propName   
      propValue  
      ex         

  protected org.apache.commons.configuration.event.ConfigurationErrorEvent createErrorEvent(int, java.lang.String, java.lang.Object, java.lang.Throwable);
    descriptor: (ILjava/lang/String;Ljava/lang/Object;Ljava/lang/Throwable;)Lorg/apache/commons/configuration/event/ConfigurationErrorEvent;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=5, args_size=5
        start local 0 // org.apache.commons.configuration.event.EventSource this
        start local 1 // int type
        start local 2 // java.lang.String propName
        start local 3 // java.lang.Object propValue
        start local 4 // java.lang.Throwable ex
         0: .line 304
            new org.apache.commons.configuration.event.ConfigurationErrorEvent
            dup
            aload 0 /* this */
            iload 1 /* type */
            aload 2 /* propName */
            aload 3 /* propValue */
            aload 4 /* ex */
            invokespecial org.apache.commons.configuration.event.ConfigurationErrorEvent.<init>:(Ljava/lang/Object;ILjava/lang/String;Ljava/lang/Object;Ljava/lang/Throwable;)V
            areturn
        end local 4 // java.lang.Throwable ex
        end local 3 // java.lang.Object propValue
        end local 2 // java.lang.String propName
        end local 1 // int type
        end local 0 // org.apache.commons.configuration.event.EventSource this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Lorg/apache/commons/configuration/event/EventSource;
            0    1     1       type  I
            0    1     2   propName  Ljava/lang/String;
            0    1     3  propValue  Ljava/lang/Object;
            0    1     4         ex  Ljava/lang/Throwable;
    MethodParameters:
           Name  Flags
      type       
      propName   
      propValue  
      ex         

  protected java.lang.Object clone();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // org.apache.commons.configuration.event.EventSource this
         0: .line 320
            aload 0 /* this */
            invokespecial java.lang.Object.clone:()Ljava/lang/Object;
            checkcast org.apache.commons.configuration.event.EventSource
            astore 1 /* copy */
        start local 1 // org.apache.commons.configuration.event.EventSource copy
         1: .line 321
            aload 1 /* copy */
            invokevirtual org.apache.commons.configuration.event.EventSource.initListeners:()V
         2: .line 322
            aload 1 /* copy */
            areturn
        end local 1 // org.apache.commons.configuration.event.EventSource copy
        end local 0 // org.apache.commons.configuration.event.EventSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/commons/configuration/event/EventSource;
            1    3     1  copy  Lorg/apache/commons/configuration/event/EventSource;
    Exceptions:
      throws java.lang.CloneNotSupportedException

  private static void checkListener(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.Object l
         0: .line 334
            aload 0 /* l */
            ifnonnull 2
         1: .line 336
            new java.lang.IllegalArgumentException
            dup
            ldc "Listener must not be null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 338
      StackMap locals:
      StackMap stack:
            return
        end local 0 // java.lang.Object l
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     l  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      l     

  private void initListeners();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.commons.configuration.event.EventSource this
         0: .line 345
            aload 0 /* this */
            new java.util.concurrent.CopyOnWriteArrayList
            dup
            invokespecial java.util.concurrent.CopyOnWriteArrayList.<init>:()V
            putfield org.apache.commons.configuration.event.EventSource.listeners:Ljava/util/Collection;
         1: .line 346
            aload 0 /* this */
            new java.util.concurrent.CopyOnWriteArrayList
            dup
            invokespecial java.util.concurrent.CopyOnWriteArrayList.<init>:()V
            putfield org.apache.commons.configuration.event.EventSource.errorListeners:Ljava/util/Collection;
         2: .line 347
            return
        end local 0 // org.apache.commons.configuration.event.EventSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/commons/configuration/event/EventSource;

  private boolean checkDetailEvents(int);
    descriptor: (I)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.apache.commons.configuration.event.EventSource this
        start local 1 // int limit
         0: .line 359
            aload 0 /* this */
            getfield org.apache.commons.configuration.event.EventSource.lockDetailEventsCount:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: .line 361
            aload 0 /* this */
            getfield org.apache.commons.configuration.event.EventSource.detailEvents:I
            iload 1 /* limit */
            if_icmple 2
            iconst_1
            goto 3
      StackMap locals: java.lang.Object
      StackMap stack:
         2: iconst_0
      StackMap locals:
      StackMap stack: int
         3: aload 2
            monitorexit
         4: ireturn
         5: .line 359
      StackMap locals:
      StackMap stack: java.lang.Throwable
            aload 2
            monitorexit
         6: athrow
        end local 1 // int limit
        end local 0 // org.apache.commons.configuration.event.EventSource this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Lorg/apache/commons/configuration/event/EventSource;
            0    7     1  limit  I
      Exception table:
        from    to  target  type
           1     4       5  any
           5     6       5  any
    MethodParameters:
       Name  Flags
      limit  
}
SourceFile: "EventSource.java"