final class com.sun.jndi.ldap.NamingEventNotifier implements java.lang.Runnable
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.sun.jndi.ldap.NamingEventNotifier
  super_class: java.lang.Object
{
  private static final boolean debug;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  private java.util.Vector<javax.naming.event.NamingListener> namingListeners;
    descriptor: Ljava/util/Vector;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Vector<Ljavax/naming/event/NamingListener;>;

  private java.lang.Thread worker;
    descriptor: Ljava/lang/Thread;
    flags: (0x0002) ACC_PRIVATE

  private com.sun.jndi.ldap.LdapCtx context;
    descriptor: Lcom/sun/jndi/ldap/LdapCtx;
    flags: (0x0002) ACC_PRIVATE

  private javax.naming.event.EventContext eventSrc;
    descriptor: Ljavax/naming/event/EventContext;
    flags: (0x0002) ACC_PRIVATE

  private com.sun.jndi.ldap.EventSupport support;
    descriptor: Lcom/sun/jndi/ldap/EventSupport;
    flags: (0x0002) ACC_PRIVATE

  private javax.naming.NamingEnumeration<javax.naming.directory.SearchResult> results;
    descriptor: Ljavax/naming/NamingEnumeration;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljavax/naming/NamingEnumeration<Ljavax/naming/directory/SearchResult;>;

  com.sun.jndi.ldap.NotifierArgs info;
    descriptor: Lcom/sun/jndi/ldap/NotifierArgs;
    flags: (0x0000) 

  void <init>(com.sun.jndi.ldap.EventSupport, com.sun.jndi.ldap.LdapCtx, com.sun.jndi.ldap.NotifierArgs, javax.naming.event.NamingListener);
    descriptor: (Lcom/sun/jndi/ldap/EventSupport;Lcom/sun/jndi/ldap/LdapCtx;Lcom/sun/jndi/ldap/NotifierArgs;Ljavax/naming/event/NamingListener;)V
    flags: (0x0000) 
    Code:
      stack=6, locals=8, args_size=5
        start local 0 // com.sun.jndi.ldap.NamingEventNotifier this
        start local 1 // com.sun.jndi.ldap.EventSupport support
        start local 2 // com.sun.jndi.ldap.LdapCtx ctx
        start local 3 // com.sun.jndi.ldap.NotifierArgs info
        start local 4 // javax.naming.event.NamingListener firstListener
         0: .line 63
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 65
            aload 0 /* this */
            aload 3 /* info */
            putfield com.sun.jndi.ldap.NamingEventNotifier.info:Lcom/sun/jndi/ldap/NotifierArgs;
         2: .line 66
            aload 0 /* this */
            aload 1 /* support */
            putfield com.sun.jndi.ldap.NamingEventNotifier.support:Lcom/sun/jndi/ldap/EventSupport;
         3: .line 70
            new com.sun.jndi.ldap.PersistentSearchControl
            dup
         4: .line 71
            aload 3 /* info */
            getfield com.sun.jndi.ldap.NotifierArgs.mask:I
         5: .line 72
            iconst_1
         6: .line 73
            iconst_1
         7: .line 74
            iconst_1
         8: .line 70
            invokespecial com.sun.jndi.ldap.PersistentSearchControl.<init>:(IZZZ)V
            astore 5 /* psearch */
        start local 5 // javax.naming.ldap.Control psearch
         9: .line 75
            goto 16
        end local 5 // javax.naming.ldap.Control psearch
      StackMap locals: com.sun.jndi.ldap.NamingEventNotifier com.sun.jndi.ldap.EventSupport com.sun.jndi.ldap.LdapCtx com.sun.jndi.ldap.NotifierArgs javax.naming.event.NamingListener
      StackMap stack: java.io.IOException
        10: astore 6 /* e */
        start local 6 // java.io.IOException e
        11: .line 76
            new javax.naming.NamingException
            dup
        12: .line 77
            ldc "Problem creating persistent search control"
        13: .line 76
            invokespecial javax.naming.NamingException.<init>:(Ljava/lang/String;)V
            astore 7 /* ne */
        start local 7 // javax.naming.NamingException ne
        14: .line 78
            aload 7 /* ne */
            aload 6 /* e */
            invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
        15: .line 79
            aload 7 /* ne */
            athrow
        end local 7 // javax.naming.NamingException ne
        end local 6 // java.io.IOException e
        start local 5 // javax.naming.ldap.Control psearch
        16: .line 83
      StackMap locals: javax.naming.ldap.Control
      StackMap stack:
            aload 0 /* this */
            aload 2 /* ctx */
            iconst_1
            anewarray javax.naming.ldap.Control
            dup
            iconst_0
            aload 5 /* psearch */
            aastore
            invokevirtual com.sun.jndi.ldap.LdapCtx.newInstance:([Ljavax/naming/ldap/Control;)Ljavax/naming/ldap/LdapContext;
            checkcast com.sun.jndi.ldap.LdapCtx
            putfield com.sun.jndi.ldap.NamingEventNotifier.context:Lcom/sun/jndi/ldap/LdapCtx;
        17: .line 84
            aload 0 /* this */
            aload 2 /* ctx */
            putfield com.sun.jndi.ldap.NamingEventNotifier.eventSrc:Ljavax/naming/event/EventContext;
        18: .line 86
            aload 0 /* this */
            new java.util.Vector
            dup
            invokespecial java.util.Vector.<init>:()V
            putfield com.sun.jndi.ldap.NamingEventNotifier.namingListeners:Ljava/util/Vector;
        19: .line 87
            aload 0 /* this */
            getfield com.sun.jndi.ldap.NamingEventNotifier.namingListeners:Ljava/util/Vector;
            aload 4 /* firstListener */
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
        20: .line 89
            aload 0 /* this */
            getstatic com.sun.jndi.ldap.Obj.helper:Lcom/sun/jndi/ldap/VersionHelper;
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.VersionHelper.createThread:(Ljava/lang/Runnable;)Ljava/lang/Thread;
            putfield com.sun.jndi.ldap.NamingEventNotifier.worker:Ljava/lang/Thread;
        21: .line 90
            aload 0 /* this */
            getfield com.sun.jndi.ldap.NamingEventNotifier.worker:Ljava/lang/Thread;
            iconst_1
            invokevirtual java.lang.Thread.setDaemon:(Z)V
        22: .line 91
            aload 0 /* this */
            getfield com.sun.jndi.ldap.NamingEventNotifier.worker:Ljava/lang/Thread;
            invokevirtual java.lang.Thread.start:()V
        23: .line 92
            return
        end local 5 // javax.naming.ldap.Control psearch
        end local 4 // javax.naming.event.NamingListener firstListener
        end local 3 // com.sun.jndi.ldap.NotifierArgs info
        end local 2 // com.sun.jndi.ldap.LdapCtx ctx
        end local 1 // com.sun.jndi.ldap.EventSupport support
        end local 0 // com.sun.jndi.ldap.NamingEventNotifier this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   24     0           this  Lcom/sun/jndi/ldap/NamingEventNotifier;
            0   24     1        support  Lcom/sun/jndi/ldap/EventSupport;
            0   24     2            ctx  Lcom/sun/jndi/ldap/LdapCtx;
            0   24     3           info  Lcom/sun/jndi/ldap/NotifierArgs;
            0   24     4  firstListener  Ljavax/naming/event/NamingListener;
            9   10     5        psearch  Ljavax/naming/ldap/Control;
           16   24     5        psearch  Ljavax/naming/ldap/Control;
           11   16     6              e  Ljava/io/IOException;
           14   16     7             ne  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           3     9      10  Class java.io.IOException
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
               Name  Flags
      support        
      ctx            
      info           
      firstListener  

  void addNamingListener(javax.naming.event.NamingListener);
    descriptor: (Ljavax/naming/event/NamingListener;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.jndi.ldap.NamingEventNotifier this
        start local 1 // javax.naming.event.NamingListener l
         0: .line 96
            aload 0 /* this */
            getfield com.sun.jndi.ldap.NamingEventNotifier.namingListeners:Ljava/util/Vector;
            aload 1 /* l */
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
         1: .line 97
            return
        end local 1 // javax.naming.event.NamingListener l
        end local 0 // com.sun.jndi.ldap.NamingEventNotifier this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/jndi/ldap/NamingEventNotifier;
            0    2     1     l  Ljavax/naming/event/NamingListener;
    MethodParameters:
      Name  Flags
      l     

  void removeNamingListener(javax.naming.event.NamingListener);
    descriptor: (Ljavax/naming/event/NamingListener;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.jndi.ldap.NamingEventNotifier this
        start local 1 // javax.naming.event.NamingListener l
         0: .line 101
            aload 0 /* this */
            getfield com.sun.jndi.ldap.NamingEventNotifier.namingListeners:Ljava/util/Vector;
            aload 1 /* l */
            invokevirtual java.util.Vector.removeElement:(Ljava/lang/Object;)Z
            pop
         1: .line 102
            return
        end local 1 // javax.naming.event.NamingListener l
        end local 0 // com.sun.jndi.ldap.NamingEventNotifier this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/jndi/ldap/NamingEventNotifier;
            0    2     1     l  Ljavax/naming/event/NamingListener;
    MethodParameters:
      Name  Flags
      l     

  boolean hasNamingListeners();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.jndi.ldap.NamingEventNotifier this
         0: .line 106
            aload 0 /* this */
            getfield com.sun.jndi.ldap.NamingEventNotifier.namingListeners:Ljava/util/Vector;
            invokevirtual java.util.Vector.size:()I
            ifle 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // com.sun.jndi.ldap.NamingEventNotifier this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/jndi/ldap/NamingEventNotifier;

  public void run();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=10, args_size=1
        start local 0 // com.sun.jndi.ldap.NamingEventNotifier this
         0: .line 116
            new com.sun.jndi.toolkit.ctx.Continuation
            dup
            invokespecial com.sun.jndi.toolkit.ctx.Continuation.<init>:()V
            astore 1 /* cont */
        start local 1 // com.sun.jndi.toolkit.ctx.Continuation cont
         1: .line 117
            aload 1 /* cont */
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.NamingEventNotifier.info:Lcom/sun/jndi/ldap/NotifierArgs;
            getfield com.sun.jndi.ldap.NotifierArgs.name:Ljava/lang/String;
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.setError:(Ljava/lang/Object;Ljava/lang/String;)V
         2: .line 118
            aload 0 /* this */
            getfield com.sun.jndi.ldap.NamingEventNotifier.info:Lcom/sun/jndi/ldap/NotifierArgs;
            getfield com.sun.jndi.ldap.NotifierArgs.name:Ljava/lang/String;
            ifnull 3
            aload 0 /* this */
            getfield com.sun.jndi.ldap.NamingEventNotifier.info:Lcom/sun/jndi/ldap/NotifierArgs;
            getfield com.sun.jndi.ldap.NotifierArgs.name:Ljava/lang/String;
            ldc ""
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 119
      StackMap locals: com.sun.jndi.toolkit.ctx.Continuation
      StackMap stack:
            new javax.naming.CompositeName
            dup
            invokespecial javax.naming.CompositeName.<init>:()V
            goto 5
      StackMap locals:
      StackMap stack:
         4: new javax.naming.CompositeName
            dup
            invokespecial javax.naming.CompositeName.<init>:()V
            aload 0 /* this */
            getfield com.sun.jndi.ldap.NamingEventNotifier.info:Lcom/sun/jndi/ldap/NotifierArgs;
            getfield com.sun.jndi.ldap.NotifierArgs.name:Ljava/lang/String;
            invokevirtual javax.naming.CompositeName.add:(Ljava/lang/String;)Ljavax/naming/Name;
         5: .line 118
      StackMap locals:
      StackMap stack: javax.naming.Name
            astore 2 /* nm */
        start local 2 // javax.naming.Name nm
         6: .line 121
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.NamingEventNotifier.context:Lcom/sun/jndi/ldap/LdapCtx;
            aload 2 /* nm */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.NamingEventNotifier.info:Lcom/sun/jndi/ldap/NotifierArgs;
            getfield com.sun.jndi.ldap.NotifierArgs.filter:Ljava/lang/String;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.NamingEventNotifier.info:Lcom/sun/jndi/ldap/NotifierArgs;
            getfield com.sun.jndi.ldap.NotifierArgs.controls:Ljavax/naming/directory/SearchControls;
         7: .line 122
            iconst_1
            iconst_0
            aload 1 /* cont */
         8: .line 121
            invokevirtual com.sun.jndi.ldap.LdapCtx.searchAux:(Ljavax/naming/Name;Ljava/lang/String;Ljavax/naming/directory/SearchControls;ZZLcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/NamingEnumeration;
            putfield com.sun.jndi.ldap.NamingEventNotifier.results:Ljavax/naming/NamingEnumeration;
         9: .line 127
            aload 0 /* this */
            getfield com.sun.jndi.ldap.NamingEventNotifier.results:Ljavax/naming/NamingEnumeration;
            checkcast com.sun.jndi.ldap.LdapSearchEnumeration
        10: .line 128
            aload 0 /* this */
            getfield com.sun.jndi.ldap.NamingEventNotifier.context:Lcom/sun/jndi/ldap/LdapCtx;
            getfield com.sun.jndi.ldap.LdapCtx.currentParsedDN:Ljavax/naming/Name;
            invokevirtual com.sun.jndi.ldap.LdapSearchEnumeration.setStartName:(Ljavax/naming/Name;)V
        11: .line 135
            goto 33
        12: .line 136
      StackMap locals: javax.naming.Name
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.NamingEventNotifier.results:Ljavax/naming/NamingEnumeration;
            invokeinterface javax.naming.NamingEnumeration.next:()Ljava/lang/Object;
            checkcast javax.naming.directory.SearchResult
            astore 3 /* si */
        start local 3 // javax.naming.directory.SearchResult si
        13: .line 137
            aload 3 /* si */
            instanceof javax.naming.ldap.HasControls
            ifeq 15
        14: .line 138
            aload 3 /* si */
            checkcast javax.naming.ldap.HasControls
            invokeinterface javax.naming.ldap.HasControls.getControls:()[Ljavax/naming/ldap/Control;
            goto 16
      StackMap locals: javax.naming.directory.SearchResult
      StackMap stack:
        15: aconst_null
        16: .line 137
      StackMap locals:
      StackMap stack: javax.naming.ldap.Control[]
            astore 4 /* respctls */
        start local 4 // javax.naming.ldap.Control[] respctls
        17: .line 146
            aload 4 /* respctls */
            ifnull 33
        18: .line 147
            iconst_0
            istore 8 /* i */
        start local 8 // int i
        19: iload 8 /* i */
            aload 4 /* respctls */
            arraylength
            if_icmpge 33
        20: .line 150
            aload 4 /* respctls */
            iload 8 /* i */
            aaload
            instanceof com.sun.jndi.ldap.EntryChangeResponseControl
            ifeq 33
        21: .line 151
            aload 4 /* respctls */
            iload 8 /* i */
            aaload
            checkcast com.sun.jndi.ldap.EntryChangeResponseControl
            astore 5 /* ec */
        start local 5 // com.sun.jndi.ldap.EntryChangeResponseControl ec
        22: .line 152
            aload 5 /* ec */
            invokevirtual com.sun.jndi.ldap.EntryChangeResponseControl.getChangeNumber:()J
            lstore 6 /* changeNum */
        start local 6 // long changeNum
        23: .line 153
            aload 5 /* ec */
            invokevirtual com.sun.jndi.ldap.EntryChangeResponseControl.getChangeType:()I
            tableswitch { // 1 - 8
                    1: 24
                    2: 26
                    3: 33
                    4: 28
                    5: 33
                    6: 33
                    7: 33
                    8: 30
              default: 33
          }
        24: .line 155
      StackMap locals: com.sun.jndi.ldap.NamingEventNotifier com.sun.jndi.toolkit.ctx.Continuation javax.naming.Name javax.naming.directory.SearchResult javax.naming.ldap.Control[] com.sun.jndi.ldap.EntryChangeResponseControl long int
      StackMap stack:
            aload 0 /* this */
            aload 3 /* si */
            lload 6 /* changeNum */
            invokevirtual com.sun.jndi.ldap.NamingEventNotifier.fireObjectAdded:(Ljavax/naming/Binding;J)V
        25: .line 156
            goto 33
        26: .line 158
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* si */
            lload 6 /* changeNum */
            invokevirtual com.sun.jndi.ldap.NamingEventNotifier.fireObjectRemoved:(Ljavax/naming/Binding;J)V
        27: .line 159
            goto 33
        28: .line 161
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* si */
            lload 6 /* changeNum */
            invokevirtual com.sun.jndi.ldap.NamingEventNotifier.fireObjectChanged:(Ljavax/naming/Binding;J)V
        29: .line 162
            goto 33
        30: .line 164
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* si */
            aload 5 /* ec */
            invokevirtual com.sun.jndi.ldap.EntryChangeResponseControl.getPreviousDN:()Ljava/lang/String;
        31: .line 165
            lload 6 /* changeNum */
        32: .line 164
            invokevirtual com.sun.jndi.ldap.NamingEventNotifier.fireObjectRenamed:(Ljavax/naming/Binding;Ljava/lang/String;J)V
        end local 8 // int i
        end local 6 // long changeNum
        end local 5 // com.sun.jndi.ldap.EntryChangeResponseControl ec
        end local 4 // javax.naming.ldap.Control[] respctls
        end local 3 // javax.naming.directory.SearchResult si
        33: .line 135
      StackMap locals: com.sun.jndi.ldap.NamingEventNotifier com.sun.jndi.toolkit.ctx.Continuation javax.naming.Name
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.NamingEventNotifier.results:Ljavax/naming/NamingEnumeration;
            invokeinterface javax.naming.NamingEnumeration.hasMore:()Z
            ifne 12
        end local 2 // javax.naming.Name nm
        end local 1 // com.sun.jndi.toolkit.ctx.Continuation cont
        34: .line 173
            goto 44
      StackMap locals: com.sun.jndi.ldap.NamingEventNotifier
      StackMap stack: javax.naming.InterruptedNamingException
        35: pop
        36: .line 182
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.NamingEventNotifier.cleanup:()V
            goto 45
        37: .line 175
      StackMap locals:
      StackMap stack: javax.naming.NamingException
            astore 1 /* e */
        start local 1 // javax.naming.NamingException e
        38: .line 177
            aload 0 /* this */
            aload 1 /* e */
            invokevirtual com.sun.jndi.ldap.NamingEventNotifier.fireNamingException:(Ljavax/naming/NamingException;)V
        39: .line 180
            aload 0 /* this */
            getfield com.sun.jndi.ldap.NamingEventNotifier.support:Lcom/sun/jndi/ldap/EventSupport;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.NamingEventNotifier.info:Lcom/sun/jndi/ldap/NotifierArgs;
            invokevirtual com.sun.jndi.ldap.EventSupport.removeDeadNotifier:(Lcom/sun/jndi/ldap/NotifierArgs;)V
        end local 1 // javax.naming.NamingException e
        40: .line 182
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.NamingEventNotifier.cleanup:()V
            goto 45
        41: .line 181
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 9
        42: .line 182
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.NamingEventNotifier.cleanup:()V
        43: .line 183
            aload 9
            athrow
        44: .line 182
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.NamingEventNotifier.cleanup:()V
        45: .line 185
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.sun.jndi.ldap.NamingEventNotifier this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   46     0       this  Lcom/sun/jndi/ldap/NamingEventNotifier;
            1   34     1       cont  Lcom/sun/jndi/toolkit/ctx/Continuation;
            6   34     2         nm  Ljavax/naming/Name;
           13   33     3         si  Ljavax/naming/directory/SearchResult;
           17   33     4   respctls  [Ljavax/naming/ldap/Control;
           22   33     5         ec  Lcom/sun/jndi/ldap/EntryChangeResponseControl;
           23   33     6  changeNum  J
           19   33     8          i  I
           38   40     1          e  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           0    34      35  Class javax.naming.InterruptedNamingException
           0    34      37  Class javax.naming.NamingException
           0    36      41  any
          37    40      41  any

  private void cleanup();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.jndi.ldap.NamingEventNotifier this
         0: .line 191
            aload 0 /* this */
            getfield com.sun.jndi.ldap.NamingEventNotifier.results:Ljavax/naming/NamingEnumeration;
            ifnull 3
         1: .line 193
            aload 0 /* this */
            getfield com.sun.jndi.ldap.NamingEventNotifier.results:Ljavax/naming/NamingEnumeration;
            invokeinterface javax.naming.NamingEnumeration.close:()V
         2: .line 194
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.NamingEventNotifier.results:Ljavax/naming/NamingEnumeration;
         3: .line 196
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.NamingEventNotifier.context:Lcom/sun/jndi/ldap/LdapCtx;
            ifnull 8
         4: .line 198
            aload 0 /* this */
            getfield com.sun.jndi.ldap.NamingEventNotifier.context:Lcom/sun/jndi/ldap/LdapCtx;
            invokevirtual com.sun.jndi.ldap.LdapCtx.close:()V
         5: .line 199
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.NamingEventNotifier.context:Lcom/sun/jndi/ldap/LdapCtx;
         6: .line 201
            goto 8
      StackMap locals:
      StackMap stack: javax.naming.NamingException
         7: pop
         8: .line 202
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.sun.jndi.ldap.NamingEventNotifier this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lcom/sun/jndi/ldap/NamingEventNotifier;
      Exception table:
        from    to  target  type
           0     6       7  Class javax.naming.NamingException

  void stop();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.jndi.ldap.NamingEventNotifier this
         0: .line 210
            aload 0 /* this */
            getfield com.sun.jndi.ldap.NamingEventNotifier.worker:Ljava/lang/Thread;
            ifnull 3
         1: .line 211
            aload 0 /* this */
            getfield com.sun.jndi.ldap.NamingEventNotifier.worker:Ljava/lang/Thread;
            invokevirtual java.lang.Thread.interrupt:()V
         2: .line 212
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.NamingEventNotifier.worker:Ljava/lang/Thread;
         3: .line 214
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.sun.jndi.ldap.NamingEventNotifier this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/sun/jndi/ldap/NamingEventNotifier;

  private void fireObjectAdded(javax.naming.Binding, long);
    descriptor: (Ljavax/naming/Binding;J)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=10, locals=5, args_size=3
        start local 0 // com.sun.jndi.ldap.NamingEventNotifier this
        start local 1 // javax.naming.Binding newBd
        start local 2 // long changeID
         0: .line 220
            aload 0 /* this */
            getfield com.sun.jndi.ldap.NamingEventNotifier.namingListeners:Ljava/util/Vector;
            ifnull 1
            aload 0 /* this */
            getfield com.sun.jndi.ldap.NamingEventNotifier.namingListeners:Ljava/util/Vector;
            invokevirtual java.util.Vector.size:()I
            ifne 2
         1: .line 221
      StackMap locals:
      StackMap stack:
            return
         2: .line 223
      StackMap locals:
      StackMap stack:
            new javax.naming.event.NamingEvent
            dup
            aload 0 /* this */
            getfield com.sun.jndi.ldap.NamingEventNotifier.eventSrc:Ljavax/naming/event/EventContext;
            iconst_0
         3: .line 224
            aload 1 /* newBd */
            aconst_null
            new java.lang.Long
            dup
            lload 2 /* changeID */
            invokespecial java.lang.Long.<init>:(J)V
         4: .line 223
            invokespecial javax.naming.event.NamingEvent.<init>:(Ljavax/naming/event/EventContext;ILjavax/naming/Binding;Ljavax/naming/Binding;Ljava/lang/Object;)V
            astore 4 /* e */
        start local 4 // javax.naming.event.NamingEvent e
         5: .line 225
            aload 0 /* this */
            getfield com.sun.jndi.ldap.NamingEventNotifier.support:Lcom/sun/jndi/ldap/EventSupport;
            aload 4 /* e */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.NamingEventNotifier.namingListeners:Ljava/util/Vector;
            invokevirtual com.sun.jndi.ldap.EventSupport.queueEvent:(Ljava/util/EventObject;Ljava/util/Vector;)V
         6: .line 226
            return
        end local 4 // javax.naming.event.NamingEvent e
        end local 2 // long changeID
        end local 1 // javax.naming.Binding newBd
        end local 0 // com.sun.jndi.ldap.NamingEventNotifier this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Lcom/sun/jndi/ldap/NamingEventNotifier;
            0    7     1     newBd  Ljavax/naming/Binding;
            0    7     2  changeID  J
            5    7     4         e  Ljavax/naming/event/NamingEvent;
    MethodParameters:
          Name  Flags
      newBd     
      changeID  

  private void fireObjectRemoved(javax.naming.Binding, long);
    descriptor: (Ljavax/naming/Binding;J)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=10, locals=5, args_size=3
        start local 0 // com.sun.jndi.ldap.NamingEventNotifier this
        start local 1 // javax.naming.Binding oldBd
        start local 2 // long changeID
         0: .line 232
            aload 0 /* this */
            getfield com.sun.jndi.ldap.NamingEventNotifier.namingListeners:Ljava/util/Vector;
            ifnull 1
            aload 0 /* this */
            getfield com.sun.jndi.ldap.NamingEventNotifier.namingListeners:Ljava/util/Vector;
            invokevirtual java.util.Vector.size:()I
            ifne 2
         1: .line 233
      StackMap locals:
      StackMap stack:
            return
         2: .line 235
      StackMap locals:
      StackMap stack:
            new javax.naming.event.NamingEvent
            dup
            aload 0 /* this */
            getfield com.sun.jndi.ldap.NamingEventNotifier.eventSrc:Ljavax/naming/event/EventContext;
            iconst_1
         3: .line 236
            aconst_null
            aload 1 /* oldBd */
            new java.lang.Long
            dup
            lload 2 /* changeID */
            invokespecial java.lang.Long.<init>:(J)V
         4: .line 235
            invokespecial javax.naming.event.NamingEvent.<init>:(Ljavax/naming/event/EventContext;ILjavax/naming/Binding;Ljavax/naming/Binding;Ljava/lang/Object;)V
            astore 4 /* e */
        start local 4 // javax.naming.event.NamingEvent e
         5: .line 237
            aload 0 /* this */
            getfield com.sun.jndi.ldap.NamingEventNotifier.support:Lcom/sun/jndi/ldap/EventSupport;
            aload 4 /* e */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.NamingEventNotifier.namingListeners:Ljava/util/Vector;
            invokevirtual com.sun.jndi.ldap.EventSupport.queueEvent:(Ljava/util/EventObject;Ljava/util/Vector;)V
         6: .line 238
            return
        end local 4 // javax.naming.event.NamingEvent e
        end local 2 // long changeID
        end local 1 // javax.naming.Binding oldBd
        end local 0 // com.sun.jndi.ldap.NamingEventNotifier this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Lcom/sun/jndi/ldap/NamingEventNotifier;
            0    7     1     oldBd  Ljavax/naming/Binding;
            0    7     2  changeID  J
            5    7     4         e  Ljavax/naming/event/NamingEvent;
    MethodParameters:
          Name  Flags
      oldBd     
      changeID  

  private void fireObjectChanged(javax.naming.Binding, long);
    descriptor: (Ljavax/naming/Binding;J)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=10, locals=6, args_size=3
        start local 0 // com.sun.jndi.ldap.NamingEventNotifier this
        start local 1 // javax.naming.Binding newBd
        start local 2 // long changeID
         0: .line 244
            aload 0 /* this */
            getfield com.sun.jndi.ldap.NamingEventNotifier.namingListeners:Ljava/util/Vector;
            ifnull 1
            aload 0 /* this */
            getfield com.sun.jndi.ldap.NamingEventNotifier.namingListeners:Ljava/util/Vector;
            invokevirtual java.util.Vector.size:()I
            ifne 2
         1: .line 245
      StackMap locals:
      StackMap stack:
            return
         2: .line 248
      StackMap locals:
      StackMap stack:
            new javax.naming.Binding
            dup
            aload 1 /* newBd */
            invokevirtual javax.naming.Binding.getName:()Ljava/lang/String;
            aconst_null
            aload 1 /* newBd */
            invokevirtual javax.naming.Binding.isRelative:()Z
            invokespecial javax.naming.Binding.<init>:(Ljava/lang/String;Ljava/lang/Object;Z)V
            astore 4 /* oldBd */
        start local 4 // javax.naming.Binding oldBd
         3: .line 250
            new javax.naming.event.NamingEvent
            dup
         4: .line 251
            aload 0 /* this */
            getfield com.sun.jndi.ldap.NamingEventNotifier.eventSrc:Ljavax/naming/event/EventContext;
            iconst_3
            aload 1 /* newBd */
            aload 4 /* oldBd */
            new java.lang.Long
            dup
            lload 2 /* changeID */
            invokespecial java.lang.Long.<init>:(J)V
         5: .line 250
            invokespecial javax.naming.event.NamingEvent.<init>:(Ljavax/naming/event/EventContext;ILjavax/naming/Binding;Ljavax/naming/Binding;Ljava/lang/Object;)V
            astore 5 /* e */
        start local 5 // javax.naming.event.NamingEvent e
         6: .line 252
            aload 0 /* this */
            getfield com.sun.jndi.ldap.NamingEventNotifier.support:Lcom/sun/jndi/ldap/EventSupport;
            aload 5 /* e */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.NamingEventNotifier.namingListeners:Ljava/util/Vector;
            invokevirtual com.sun.jndi.ldap.EventSupport.queueEvent:(Ljava/util/EventObject;Ljava/util/Vector;)V
         7: .line 253
            return
        end local 5 // javax.naming.event.NamingEvent e
        end local 4 // javax.naming.Binding oldBd
        end local 2 // long changeID
        end local 1 // javax.naming.Binding newBd
        end local 0 // com.sun.jndi.ldap.NamingEventNotifier this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0      this  Lcom/sun/jndi/ldap/NamingEventNotifier;
            0    8     1     newBd  Ljavax/naming/Binding;
            0    8     2  changeID  J
            3    8     4     oldBd  Ljavax/naming/Binding;
            6    8     5         e  Ljavax/naming/event/NamingEvent;
    MethodParameters:
          Name  Flags
      newBd     
      changeID  

  private void fireObjectRenamed(javax.naming.Binding, java.lang.String, long);
    descriptor: (Ljavax/naming/Binding;Ljava/lang/String;J)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=10, locals=8, args_size=4
        start local 0 // com.sun.jndi.ldap.NamingEventNotifier this
        start local 1 // javax.naming.Binding newBd
        start local 2 // java.lang.String oldDN
        start local 3 // long changeID
         0: .line 259
            aload 0 /* this */
            getfield com.sun.jndi.ldap.NamingEventNotifier.namingListeners:Ljava/util/Vector;
            ifnull 1
            aload 0 /* this */
            getfield com.sun.jndi.ldap.NamingEventNotifier.namingListeners:Ljava/util/Vector;
            invokevirtual java.util.Vector.size:()I
            ifne 2
         1: .line 260
      StackMap locals:
      StackMap stack:
            return
         2: .line 262
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 5 /* oldBd */
        start local 5 // javax.naming.Binding oldBd
         3: .line 264
            new javax.naming.ldap.LdapName
            dup
            aload 2 /* oldDN */
            invokespecial javax.naming.ldap.LdapName.<init>:(Ljava/lang/String;)V
            astore 6 /* dn */
        start local 6 // javax.naming.ldap.LdapName dn
         4: .line 265
            aload 6 /* dn */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.NamingEventNotifier.context:Lcom/sun/jndi/ldap/LdapCtx;
            getfield com.sun.jndi.ldap.LdapCtx.currentParsedDN:Ljavax/naming/Name;
            invokevirtual javax.naming.ldap.LdapName.startsWith:(Ljavax/naming/Name;)Z
            ifeq 9
         5: .line 266
            aload 6 /* dn */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.NamingEventNotifier.context:Lcom/sun/jndi/ldap/LdapCtx;
            getfield com.sun.jndi.ldap.LdapCtx.currentParsedDN:Ljavax/naming/Name;
            invokeinterface javax.naming.Name.size:()I
            invokevirtual javax.naming.ldap.LdapName.getSuffix:(I)Ljavax/naming/Name;
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            astore 7 /* relDN */
        start local 7 // java.lang.String relDN
         6: .line 267
            new javax.naming.Binding
            dup
            aload 7 /* relDN */
            aconst_null
            invokespecial javax.naming.Binding.<init>:(Ljava/lang/String;Ljava/lang/Object;)V
            astore 5 /* oldBd */
        end local 7 // java.lang.String relDN
        end local 6 // javax.naming.ldap.LdapName dn
         7: .line 269
            goto 9
      StackMap locals: com.sun.jndi.ldap.NamingEventNotifier javax.naming.Binding java.lang.String long javax.naming.Binding
      StackMap stack: javax.naming.NamingException
         8: pop
         9: .line 271
      StackMap locals:
      StackMap stack:
            aload 5 /* oldBd */
            ifnonnull 11
        10: .line 272
            new javax.naming.Binding
            dup
            aload 2 /* oldDN */
            aconst_null
            iconst_0
            invokespecial javax.naming.Binding.<init>:(Ljava/lang/String;Ljava/lang/Object;Z)V
            astore 5 /* oldBd */
        11: .line 275
      StackMap locals:
      StackMap stack:
            new javax.naming.event.NamingEvent
            dup
        12: .line 276
            aload 0 /* this */
            getfield com.sun.jndi.ldap.NamingEventNotifier.eventSrc:Ljavax/naming/event/EventContext;
            iconst_2
            aload 1 /* newBd */
            aload 5 /* oldBd */
            new java.lang.Long
            dup
            lload 3 /* changeID */
            invokespecial java.lang.Long.<init>:(J)V
        13: .line 275
            invokespecial javax.naming.event.NamingEvent.<init>:(Ljavax/naming/event/EventContext;ILjavax/naming/Binding;Ljavax/naming/Binding;Ljava/lang/Object;)V
            astore 6 /* e */
        start local 6 // javax.naming.event.NamingEvent e
        14: .line 277
            aload 0 /* this */
            getfield com.sun.jndi.ldap.NamingEventNotifier.support:Lcom/sun/jndi/ldap/EventSupport;
            aload 6 /* e */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.NamingEventNotifier.namingListeners:Ljava/util/Vector;
            invokevirtual com.sun.jndi.ldap.EventSupport.queueEvent:(Ljava/util/EventObject;Ljava/util/Vector;)V
        15: .line 278
            return
        end local 6 // javax.naming.event.NamingEvent e
        end local 5 // javax.naming.Binding oldBd
        end local 3 // long changeID
        end local 2 // java.lang.String oldDN
        end local 1 // javax.naming.Binding newBd
        end local 0 // com.sun.jndi.ldap.NamingEventNotifier this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   16     0      this  Lcom/sun/jndi/ldap/NamingEventNotifier;
            0   16     1     newBd  Ljavax/naming/Binding;
            0   16     2     oldDN  Ljava/lang/String;
            0   16     3  changeID  J
            3   16     5     oldBd  Ljavax/naming/Binding;
            4    7     6        dn  Ljavax/naming/ldap/LdapName;
            6    7     7     relDN  Ljava/lang/String;
           14   16     6         e  Ljavax/naming/event/NamingEvent;
      Exception table:
        from    to  target  type
           3     7       8  Class javax.naming.NamingException
    MethodParameters:
          Name  Flags
      newBd     
      oldDN     
      changeID  

  private void fireNamingException(javax.naming.NamingException);
    descriptor: (Ljavax/naming/NamingException;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // com.sun.jndi.ldap.NamingEventNotifier this
        start local 1 // javax.naming.NamingException e
         0: .line 281
            aload 0 /* this */
            getfield com.sun.jndi.ldap.NamingEventNotifier.namingListeners:Ljava/util/Vector;
            ifnull 1
            aload 0 /* this */
            getfield com.sun.jndi.ldap.NamingEventNotifier.namingListeners:Ljava/util/Vector;
            invokevirtual java.util.Vector.size:()I
            ifne 2
         1: .line 282
      StackMap locals:
      StackMap stack:
            return
         2: .line 284
      StackMap locals:
      StackMap stack:
            new javax.naming.event.NamingExceptionEvent
            dup
            aload 0 /* this */
            getfield com.sun.jndi.ldap.NamingEventNotifier.eventSrc:Ljavax/naming/event/EventContext;
            aload 1 /* e */
            invokespecial javax.naming.event.NamingExceptionEvent.<init>:(Ljavax/naming/event/EventContext;Ljavax/naming/NamingException;)V
            astore 2 /* evt */
        start local 2 // javax.naming.event.NamingExceptionEvent evt
         3: .line 285
            aload 0 /* this */
            getfield com.sun.jndi.ldap.NamingEventNotifier.support:Lcom/sun/jndi/ldap/EventSupport;
            aload 2 /* evt */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.NamingEventNotifier.namingListeners:Ljava/util/Vector;
            invokevirtual com.sun.jndi.ldap.EventSupport.queueEvent:(Ljava/util/EventObject;Ljava/util/Vector;)V
         4: .line 286
            return
        end local 2 // javax.naming.event.NamingExceptionEvent evt
        end local 1 // javax.naming.NamingException e
        end local 0 // com.sun.jndi.ldap.NamingEventNotifier this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/sun/jndi/ldap/NamingEventNotifier;
            0    5     1     e  Ljavax/naming/NamingException;
            3    5     2   evt  Ljavax/naming/event/NamingExceptionEvent;
    MethodParameters:
      Name  Flags
      e     
}
SourceFile: "NamingEventNotifier.java"