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 namingListeners;
    descriptor: Ljava/util/Vector;
    flags: (0x0002) ACC_PRIVATE

  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 results;
    descriptor: Ljavax/naming/NamingEnumeration;
    flags: (0x0002) ACC_PRIVATE

  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
            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
        10: .line 134
            goto 32
        11: .line 135
      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
        12: .line 136
            aload 3 /* si */
            instanceof javax.naming.ldap.HasControls
            ifeq 14
        13: .line 137
            aload 3 /* si */
            checkcast javax.naming.ldap.HasControls
            invokeinterface javax.naming.ldap.HasControls.getControls:()[Ljavax/naming/ldap/Control;
            goto 15
      StackMap locals: javax.naming.directory.SearchResult
      StackMap stack:
        14: aconst_null
        15: .line 136
      StackMap locals:
      StackMap stack: javax.naming.ldap.Control[]
            astore 4 /* respctls */
        start local 4 // javax.naming.ldap.Control[] respctls
        16: .line 145
            aload 4 /* respctls */
            ifnull 32
        17: .line 146
            iconst_0
            istore 8 /* i */
        start local 8 // int i
        18: iload 8 /* i */
            aload 4 /* respctls */
            arraylength
            if_icmpge 32
        19: .line 149
            aload 4 /* respctls */
            iload 8 /* i */
            aaload
            instanceof com.sun.jndi.ldap.EntryChangeResponseControl
            ifeq 32
        20: .line 150
            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
        21: .line 151
            aload 5 /* ec */
            invokevirtual com.sun.jndi.ldap.EntryChangeResponseControl.getChangeNumber:()J
            lstore 6 /* changeNum */
        start local 6 // long changeNum
        22: .line 152
            aload 5 /* ec */
            invokevirtual com.sun.jndi.ldap.EntryChangeResponseControl.getChangeType:()I
            tableswitch { // 1 - 8
                    1: 23
                    2: 25
                    3: 32
                    4: 27
                    5: 32
                    6: 32
                    7: 32
                    8: 29
              default: 32
          }
        23: .line 154
      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
        24: .line 155
            goto 32
        25: .line 157
      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
        26: .line 158
            goto 32
        27: .line 160
      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
        28: .line 161
            goto 32
        29: .line 163
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* si */
            aload 5 /* ec */
            invokevirtual com.sun.jndi.ldap.EntryChangeResponseControl.getPreviousDN:()Ljava/lang/String;
        30: .line 164
            lload 6 /* changeNum */
        31: .line 163
            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
        32: .line 134
      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 11
        end local 2 // javax.naming.Name nm
        end local 1 // com.sun.jndi.toolkit.ctx.Continuation cont
        33: .line 172
            goto 43
      StackMap locals: com.sun.jndi.ldap.NamingEventNotifier
      StackMap stack: javax.naming.InterruptedNamingException
        34: pop
        35: .line 181
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.NamingEventNotifier.cleanup:()V
            goto 44
        36: .line 174
      StackMap locals:
      StackMap stack: javax.naming.NamingException
            astore 1 /* e */
        start local 1 // javax.naming.NamingException e
        37: .line 176
            aload 0 /* this */
            aload 1 /* e */
            invokevirtual com.sun.jndi.ldap.NamingEventNotifier.fireNamingException:(Ljavax/naming/NamingException;)V
        38: .line 179
            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
        39: .line 181
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.NamingEventNotifier.cleanup:()V
            goto 44
        40: .line 180
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 9
        41: .line 181
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.NamingEventNotifier.cleanup:()V
        42: .line 182
            aload 9
            athrow
        43: .line 181
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.NamingEventNotifier.cleanup:()V
        44: .line 184
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.sun.jndi.ldap.NamingEventNotifier this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   45     0       this  Lcom/sun/jndi/ldap/NamingEventNotifier;
            1   33     1       cont  Lcom/sun/jndi/toolkit/ctx/Continuation;
            6   33     2         nm  Ljavax/naming/Name;
           12   32     3         si  Ljavax/naming/directory/SearchResult;
           16   32     4   respctls  [Ljavax/naming/ldap/Control;
           21   32     5         ec  Lcom/sun/jndi/ldap/EntryChangeResponseControl;
           22   32     6  changeNum  J
           18   32     8          i  I
           37   39     1          e  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           0    33      34  Class javax.naming.InterruptedNamingException
           0    33      36  Class javax.naming.NamingException
           0    35      40  any
          36    39      40  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 190
            aload 0 /* this */
            getfield com.sun.jndi.ldap.NamingEventNotifier.results:Ljavax/naming/NamingEnumeration;
            ifnull 3
         1: .line 192
            aload 0 /* this */
            getfield com.sun.jndi.ldap.NamingEventNotifier.results:Ljavax/naming/NamingEnumeration;
            invokeinterface javax.naming.NamingEnumeration.close:()V
         2: .line 193
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.NamingEventNotifier.results:Ljavax/naming/NamingEnumeration;
         3: .line 195
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.NamingEventNotifier.context:Lcom/sun/jndi/ldap/LdapCtx;
            ifnull 8
         4: .line 197
            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 198
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.NamingEventNotifier.context:Lcom/sun/jndi/ldap/LdapCtx;
         6: .line 200
            goto 8
      StackMap locals:
      StackMap stack: javax.naming.NamingException
         7: pop
         8: .line 201
      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 209
            aload 0 /* this */
            getfield com.sun.jndi.ldap.NamingEventNotifier.worker:Ljava/lang/Thread;
            ifnull 3
         1: .line 210
            aload 0 /* this */
            getfield com.sun.jndi.ldap.NamingEventNotifier.worker:Ljava/lang/Thread;
            invokevirtual java.lang.Thread.interrupt:()V
         2: .line 211
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.NamingEventNotifier.worker:Ljava/lang/Thread;
         3: .line 213
      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 219
            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 220
      StackMap locals:
      StackMap stack:
            return
         2: .line 222
      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 223
            aload 1 /* newBd */
            aconst_null
            new java.lang.Long
            dup
            lload 2 /* changeID */
            invokespecial java.lang.Long.<init>:(J)V
         4: .line 222
            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 224
            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 225
            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 231
            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 232
      StackMap locals:
      StackMap stack:
            return
         2: .line 234
      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 235
            aconst_null
            aload 1 /* oldBd */
            new java.lang.Long
            dup
            lload 2 /* changeID */
            invokespecial java.lang.Long.<init>:(J)V
         4: .line 234
            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 236
            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 237
            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 243
            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 244
      StackMap locals:
      StackMap stack:
            return
         2: .line 247
      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 249
            new javax.naming.event.NamingEvent
            dup
         4: .line 250
            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 249
            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 251
            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 252
            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 258
            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 259
      StackMap locals:
      StackMap stack:
            return
         2: .line 261
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 5 /* oldBd */
        start local 5 // javax.naming.Binding oldBd
         3: .line 263
            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 264
            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 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;
            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 266
            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 268
            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 270
      StackMap locals:
      StackMap stack:
            aload 5 /* oldBd */
            ifnonnull 11
        10: .line 271
            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 274
      StackMap locals:
      StackMap stack:
            new javax.naming.event.NamingEvent
            dup
        12: .line 275
            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 274
            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 276
            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 277
            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 280
            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 281
      StackMap locals:
      StackMap stack:
            return
         2: .line 283
      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 284
            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 285
            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"