class javax.management.remote.rmi.RMIConnector$RMINotifClient extends com.sun.jmx.remote.internal.ClientNotifForwarder
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: javax.management.remote.rmi.RMIConnector$RMINotifClient
  super_class: com.sun.jmx.remote.internal.ClientNotifForwarder
{
  final javax.management.remote.rmi.RMIConnector this$0;
    descriptor: Ljavax/management/remote/rmi/RMIConnector;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  public void <init>(java.lang.ClassLoader, java.util.Map<java.lang.String, ?>);
    descriptor: (Ljavax/management/remote/rmi/RMIConnector;Ljava/lang/ClassLoader;Ljava/util/Map;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // javax.management.remote.rmi.RMIConnector$RMINotifClient this
        start local 2 // java.lang.ClassLoader cl
        start local 3 // java.util.Map env
         0: .line 1330
            aload 0 /* this */
            aload 1
            putfield javax.management.remote.rmi.RMIConnector$RMINotifClient.this$0:Ljavax/management/remote/rmi/RMIConnector;
         1: .line 1331
            aload 0 /* this */
            aload 2 /* cl */
            aload 3 /* env */
            invokespecial com.sun.jmx.remote.internal.ClientNotifForwarder.<init>:(Ljava/lang/ClassLoader;Ljava/util/Map;)V
         2: .line 1332
            return
        end local 3 // java.util.Map env
        end local 2 // java.lang.ClassLoader cl
        end local 0 // javax.management.remote.rmi.RMIConnector$RMINotifClient this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljavax/management/remote/rmi/RMIConnector$RMINotifClient;
            0    3     2    cl  Ljava/lang/ClassLoader;
            0    3     3   env  Ljava/util/Map<Ljava/lang/String;*>;
    Signature: (Ljava/lang/ClassLoader;Ljava/util/Map<Ljava/lang/String;*>;)V
    MethodParameters:
        Name  Flags
      this$0  final
      cl      
      env     

  protected javax.management.remote.NotificationResult fetchNotifs(long, int, long);
    descriptor: (JIJ)Ljavax/management/remote/NotificationResult;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=12, locals=10, args_size=4
        start local 0 // javax.management.remote.rmi.RMIConnector$RMINotifClient this
        start local 1 // long clientSequenceNumber
        start local 3 // int maxNotifications
        start local 4 // long timeout
         0: .line 1339
            iconst_0
            istore 6 /* retried */
        start local 6 // boolean retried
         1: .line 1343
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield javax.management.remote.rmi.RMIConnector$RMINotifClient.this$0:Ljavax/management/remote/rmi/RMIConnector;
            getfield javax.management.remote.rmi.RMIConnector.connection:Ljavax/management/remote/rmi/RMIConnection;
            lload 1 /* clientSequenceNumber */
         2: .line 1344
            iload 3 /* maxNotifications */
         3: .line 1345
            lload 4 /* timeout */
         4: .line 1343
            invokeinterface javax.management.remote.rmi.RMIConnection.fetchNotifications:(JIJ)Ljavax/management/remote/NotificationResult;
         5: areturn
         6: .line 1346
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 7 /* ioe */
        start local 7 // java.io.IOException ioe
         7: .line 1351
            aload 0 /* this */
            aload 7 /* ioe */
            invokevirtual javax.management.remote.rmi.RMIConnector$RMINotifClient.rethrowDeserializationException:(Ljava/io/IOException;)V
         8: .line 1354
            aload 0 /* this */
            getfield javax.management.remote.rmi.RMIConnector$RMINotifClient.this$0:Ljavax/management/remote/rmi/RMIConnector;
            getfield javax.management.remote.rmi.RMIConnector.communicatorAdmin:Lcom/sun/jmx/remote/internal/ClientCommunicatorAdmin;
            aload 7 /* ioe */
            invokevirtual com.sun.jmx.remote.internal.ClientCommunicatorAdmin.gotIOException:(Ljava/io/IOException;)V
         9: .line 1356
            goto 1
      StackMap locals: javax.management.remote.rmi.RMIConnector$RMINotifClient long int long int java.io.IOException
      StackMap stack: java.io.IOException
        10: pop
        11: .line 1357
            iconst_0
            istore 8 /* toClose */
        start local 8 // boolean toClose
        12: .line 1359
            aload 0 /* this */
            dup
            astore 9
            monitorenter
        13: .line 1360
            aload 0 /* this */
            getfield javax.management.remote.rmi.RMIConnector$RMINotifClient.this$0:Ljavax/management/remote/rmi/RMIConnector;
            getfield javax.management.remote.rmi.RMIConnector.terminated:Z
            ifeq 15
        14: .line 1362
            aload 7 /* ioe */
            athrow
        15: .line 1363
      StackMap locals: int javax.management.remote.rmi.RMIConnector$RMINotifClient
      StackMap stack:
            iload 6 /* retried */
            ifeq 17
        16: .line 1364
            iconst_1
            istore 8 /* toClose */
        17: .line 1359
      StackMap locals:
      StackMap stack:
            aload 9
            monitorexit
        18: goto 21
      StackMap locals:
      StackMap stack: java.lang.Throwable
        19: aload 9
            monitorexit
        20: athrow
        21: .line 1368
      StackMap locals:
      StackMap stack:
            iload 8 /* toClose */
            ifeq 36
        22: .line 1383
            new javax.management.remote.JMXConnectionNotification
            dup
        23: .line 1384
            ldc "jmx.remote.connection.failed"
        24: .line 1385
            aload 0 /* this */
        25: .line 1386
            aload 0 /* this */
            getfield javax.management.remote.rmi.RMIConnector$RMINotifClient.this$0:Ljavax/management/remote/rmi/RMIConnector;
            getfield javax.management.remote.rmi.RMIConnector.connectionId:Ljava/lang/String;
        26: .line 1387
            aload 0 /* this */
            getfield javax.management.remote.rmi.RMIConnector$RMINotifClient.this$0:Ljavax/management/remote/rmi/RMIConnector;
            dup
            getfield javax.management.remote.rmi.RMIConnector.clientNotifSeqNo:J
            dup2_x1
            lconst_1
            ladd
            putfield javax.management.remote.rmi.RMIConnector.clientNotifSeqNo:J
        27: .line 1388
            new java.lang.StringBuilder
            dup
            ldc "Failed to communicate with the server: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 7 /* ioe */
            invokevirtual java.io.IOException.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        28: .line 1389
            aload 7 /* ioe */
        29: .line 1383
            invokespecial javax.management.remote.JMXConnectionNotification.<init>:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/String;JLjava/lang/String;Ljava/lang/Object;)V
        30: .line 1382
            astore 9 /* failedNotif */
        start local 9 // javax.management.Notification failedNotif
        31: .line 1391
            aload 0 /* this */
            getfield javax.management.remote.rmi.RMIConnector$RMINotifClient.this$0:Ljavax/management/remote/rmi/RMIConnector;
            aload 9 /* failedNotif */
            invokevirtual javax.management.remote.rmi.RMIConnector.sendNotification:(Ljavax/management/Notification;)V
        32: .line 1394
            aload 0 /* this */
            getfield javax.management.remote.rmi.RMIConnector$RMINotifClient.this$0:Ljavax/management/remote/rmi/RMIConnector;
            iconst_1
            invokevirtual javax.management.remote.rmi.RMIConnector.close:(Z)V
        33: .line 1395
            goto 35
      StackMap locals: javax.management.remote.rmi.RMIConnector$RMINotifClient long int long int java.io.IOException int javax.management.Notification
      StackMap stack: java.lang.Exception
        34: pop
        35: .line 1399
      StackMap locals:
      StackMap stack:
            aload 7 /* ioe */
            athrow
        end local 9 // javax.management.Notification failedNotif
        36: .line 1403
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 6 /* retried */
        end local 8 // boolean toClose
        end local 7 // java.io.IOException ioe
        37: .line 1340
            goto 1
        end local 6 // boolean retried
        end local 4 // long timeout
        end local 3 // int maxNotifications
        end local 1 // long clientSequenceNumber
        end local 0 // javax.management.remote.rmi.RMIConnector$RMINotifClient this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   38     0                  this  Ljavax/management/remote/rmi/RMIConnector$RMINotifClient;
            0   38     1  clientSequenceNumber  J
            0   38     3      maxNotifications  I
            0   38     4               timeout  J
            1   38     6               retried  Z
            7   37     7                   ioe  Ljava/io/IOException;
           12   37     8               toClose  Z
           31   36     9           failedNotif  Ljavax/management/Notification;
      Exception table:
        from    to  target  type
           1     5       6  Class java.io.IOException
           8     9      10  Class java.io.IOException
          13    18      19  any
          19    20      19  any
          32    33      34  Class java.lang.Exception
    Exceptions:
      throws java.io.IOException, java.lang.ClassNotFoundException
    MethodParameters:
                      Name  Flags
      clientSequenceNumber  
      maxNotifications      
      timeout               

  private void rethrowDeserializationException(java.io.IOException);
    descriptor: (Ljava/io/IOException;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // javax.management.remote.rmi.RMIConnector$RMINotifClient this
        start local 1 // java.io.IOException ioe
         0: .line 1413
            aload 1 /* ioe */
            instanceof java.rmi.UnmarshalException
            ifeq 4
         1: .line 1414
            new java.io.NotSerializableException
            dup
            invokespecial java.io.NotSerializableException.<init>:()V
            astore 2 /* nse */
        start local 2 // java.io.NotSerializableException nse
         2: .line 1415
            aload 2 /* nse */
            aload 1 /* ioe */
            invokevirtual java.io.NotSerializableException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            pop
         3: .line 1416
            aload 2 /* nse */
            athrow
        end local 2 // java.io.NotSerializableException nse
         4: .line 1421
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.io.IOException ioe
        end local 0 // javax.management.remote.rmi.RMIConnector$RMINotifClient this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljavax/management/remote/rmi/RMIConnector$RMINotifClient;
            0    5     1   ioe  Ljava/io/IOException;
            2    4     2   nse  Ljava/io/NotSerializableException;
    Exceptions:
      throws java.lang.ClassNotFoundException, java.io.IOException
    MethodParameters:
      Name  Flags
      ioe   

  protected java.lang.Integer addListenerForMBeanRemovedNotif();
    descriptor: ()Ljava/lang/Integer;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=8, args_size=1
        start local 0 // javax.management.remote.rmi.RMIConnector$RMINotifClient this
         0: .line 1426
            new javax.management.NotificationFilterSupport
            dup
            invokespecial javax.management.NotificationFilterSupport.<init>:()V
         1: .line 1425
            astore 1 /* clientFilter */
        start local 1 // javax.management.NotificationFilterSupport clientFilter
         2: .line 1427
            aload 1 /* clientFilter */
         3: .line 1428
            ldc "JMX.mbean.unregistered"
         4: .line 1427
            invokevirtual javax.management.NotificationFilterSupport.enableType:(Ljava/lang/String;)V
         5: .line 1430
            new java.rmi.MarshalledObject
            dup
            aload 1 /* clientFilter */
            invokespecial java.rmi.MarshalledObject.<init>:(Ljava/lang/Object;)V
         6: .line 1429
            astore 2 /* sFilter */
        start local 2 // java.rmi.MarshalledObject sFilter
         7: .line 1434
            iconst_1
            anewarray javax.management.ObjectName
            dup
            iconst_0
            getstatic javax.management.MBeanServerDelegate.DELEGATE_NAME:Ljavax/management/ObjectName;
            aastore
         8: .line 1433
            astore 4 /* names */
        start local 4 // javax.management.ObjectName[] names
         9: .line 1436
            iconst_1
            anewarray java.rmi.MarshalledObject
            dup
            iconst_0
            aload 2 /* sFilter */
            aastore
            invokestatic javax.management.remote.rmi.RMIConnector$Util.cast:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.rmi.MarshalledObject[]
        10: .line 1435
            astore 5 /* filters */
        start local 5 // java.rmi.MarshalledObject[] filters
        11: .line 1437
            iconst_1
            anewarray javax.security.auth.Subject
            astore 6 /* subjects */
        start local 6 // javax.security.auth.Subject[] subjects
        12: .line 1440
            aload 0 /* this */
            getfield javax.management.remote.rmi.RMIConnector$RMINotifClient.this$0:Ljavax/management/remote/rmi/RMIConnector;
            getfield javax.management.remote.rmi.RMIConnector.connection:Ljavax/management/remote/rmi/RMIConnection;
            aload 4 /* names */
        13: .line 1441
            aload 5 /* filters */
        14: .line 1442
            aload 6 /* subjects */
        15: .line 1440
            invokeinterface javax.management.remote.rmi.RMIConnection.addNotificationListeners:([Ljavax/management/ObjectName;[Ljava/rmi/MarshalledObject;[Ljavax/security/auth/Subject;)[Ljava/lang/Integer;
        16: .line 1439
            astore 3 /* listenerIDs */
        start local 3 // java.lang.Integer[] listenerIDs
        17: .line 1444
            goto 25
        end local 3 // java.lang.Integer[] listenerIDs
      StackMap locals: javax.management.remote.rmi.RMIConnector$RMINotifClient javax.management.NotificationFilterSupport java.rmi.MarshalledObject top javax.management.ObjectName[] java.rmi.MarshalledObject[] javax.security.auth.Subject[]
      StackMap stack: java.io.IOException
        18: astore 7 /* ioe */
        start local 7 // java.io.IOException ioe
        19: .line 1445
            aload 0 /* this */
            getfield javax.management.remote.rmi.RMIConnector$RMINotifClient.this$0:Ljavax/management/remote/rmi/RMIConnector;
            getfield javax.management.remote.rmi.RMIConnector.communicatorAdmin:Lcom/sun/jmx/remote/internal/ClientCommunicatorAdmin;
            aload 7 /* ioe */
            invokevirtual com.sun.jmx.remote.internal.ClientCommunicatorAdmin.gotIOException:(Ljava/io/IOException;)V
        20: .line 1448
            aload 0 /* this */
            getfield javax.management.remote.rmi.RMIConnector$RMINotifClient.this$0:Ljavax/management/remote/rmi/RMIConnector;
            getfield javax.management.remote.rmi.RMIConnector.connection:Ljavax/management/remote/rmi/RMIConnection;
            aload 4 /* names */
        21: .line 1449
            aload 5 /* filters */
        22: .line 1450
            aload 6 /* subjects */
        23: .line 1448
            invokeinterface javax.management.remote.rmi.RMIConnection.addNotificationListeners:([Ljavax/management/ObjectName;[Ljava/rmi/MarshalledObject;[Ljavax/security/auth/Subject;)[Ljava/lang/Integer;
        24: .line 1447
            astore 3 /* listenerIDs */
        end local 7 // java.io.IOException ioe
        start local 3 // java.lang.Integer[] listenerIDs
        25: .line 1452
      StackMap locals: javax.management.remote.rmi.RMIConnector$RMINotifClient javax.management.NotificationFilterSupport java.rmi.MarshalledObject java.lang.Integer[] javax.management.ObjectName[] java.rmi.MarshalledObject[] javax.security.auth.Subject[]
      StackMap stack:
            aload 3 /* listenerIDs */
            iconst_0
            aaload
            areturn
        end local 6 // javax.security.auth.Subject[] subjects
        end local 5 // java.rmi.MarshalledObject[] filters
        end local 4 // javax.management.ObjectName[] names
        end local 3 // java.lang.Integer[] listenerIDs
        end local 2 // java.rmi.MarshalledObject sFilter
        end local 1 // javax.management.NotificationFilterSupport clientFilter
        end local 0 // javax.management.remote.rmi.RMIConnector$RMINotifClient this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   26     0          this  Ljavax/management/remote/rmi/RMIConnector$RMINotifClient;
            2   26     1  clientFilter  Ljavax/management/NotificationFilterSupport;
            7   26     2       sFilter  Ljava/rmi/MarshalledObject<Ljavax/management/NotificationFilter;>;
           17   18     3   listenerIDs  [Ljava/lang/Integer;
           25   26     3   listenerIDs  [Ljava/lang/Integer;
            9   26     4         names  [Ljavax/management/ObjectName;
           11   26     5       filters  [Ljava/rmi/MarshalledObject;
           12   26     6      subjects  [Ljavax/security/auth/Subject;
           19   25     7           ioe  Ljava/io/IOException;
      Exception table:
        from    to  target  type
          12    17      18  Class java.io.IOException
    Exceptions:
      throws java.io.IOException, javax.management.InstanceNotFoundException

  protected void removeListenerForMBeanRemovedNotif(java.lang.Integer);
    descriptor: (Ljava/lang/Integer;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // javax.management.remote.rmi.RMIConnector$RMINotifClient this
        start local 1 // java.lang.Integer id
         0: .line 1459
            aload 0 /* this */
            getfield javax.management.remote.rmi.RMIConnector$RMINotifClient.this$0:Ljavax/management/remote/rmi/RMIConnector;
            getfield javax.management.remote.rmi.RMIConnector.connection:Ljavax/management/remote/rmi/RMIConnection;
         1: .line 1460
            getstatic javax.management.MBeanServerDelegate.DELEGATE_NAME:Ljavax/management/ObjectName;
         2: .line 1461
            iconst_1
            anewarray java.lang.Integer
            dup
            iconst_0
            aload 1 /* id */
            aastore
         3: .line 1462
            aconst_null
         4: .line 1459
            invokeinterface javax.management.remote.rmi.RMIConnection.removeNotificationListeners:(Ljavax/management/ObjectName;[Ljava/lang/Integer;Ljavax/security/auth/Subject;)V
         5: .line 1463
            goto 13
      StackMap locals:
      StackMap stack: java.io.IOException
         6: astore 2 /* ioe */
        start local 2 // java.io.IOException ioe
         7: .line 1464
            aload 0 /* this */
            getfield javax.management.remote.rmi.RMIConnector$RMINotifClient.this$0:Ljavax/management/remote/rmi/RMIConnector;
            getfield javax.management.remote.rmi.RMIConnector.communicatorAdmin:Lcom/sun/jmx/remote/internal/ClientCommunicatorAdmin;
            aload 2 /* ioe */
            invokevirtual com.sun.jmx.remote.internal.ClientCommunicatorAdmin.gotIOException:(Ljava/io/IOException;)V
         8: .line 1466
            aload 0 /* this */
            getfield javax.management.remote.rmi.RMIConnector$RMINotifClient.this$0:Ljavax/management/remote/rmi/RMIConnector;
            getfield javax.management.remote.rmi.RMIConnector.connection:Ljavax/management/remote/rmi/RMIConnection;
         9: .line 1467
            getstatic javax.management.MBeanServerDelegate.DELEGATE_NAME:Ljavax/management/ObjectName;
        10: .line 1468
            iconst_1
            anewarray java.lang.Integer
            dup
            iconst_0
            aload 1 /* id */
            aastore
        11: .line 1469
            aconst_null
        12: .line 1466
            invokeinterface javax.management.remote.rmi.RMIConnection.removeNotificationListeners:(Ljavax/management/ObjectName;[Ljava/lang/Integer;Ljavax/security/auth/Subject;)V
        end local 2 // java.io.IOException ioe
        13: .line 1472
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Integer id
        end local 0 // javax.management.remote.rmi.RMIConnector$RMINotifClient this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0  this  Ljavax/management/remote/rmi/RMIConnector$RMINotifClient;
            0   14     1    id  Ljava/lang/Integer;
            7   13     2   ioe  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           0     5       6  Class java.io.IOException
    Exceptions:
      throws java.io.IOException, javax.management.InstanceNotFoundException, javax.management.ListenerNotFoundException
    MethodParameters:
      Name  Flags
      id    

  protected void lostNotifs(java.lang.String, long);
    descriptor: (Ljava/lang/String;J)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=12, locals=5, args_size=3
        start local 0 // javax.management.remote.rmi.RMIConnector$RMINotifClient this
        start local 1 // java.lang.String message
        start local 2 // long number
         0: .line 1478
            new javax.management.remote.JMXConnectionNotification
            dup
            ldc "jmx.remote.connection.notifs.lost"
         1: .line 1479
            aload 0 /* this */
            getfield javax.management.remote.rmi.RMIConnector$RMINotifClient.this$0:Ljavax/management/remote/rmi/RMIConnector;
         2: .line 1480
            aload 0 /* this */
            getfield javax.management.remote.rmi.RMIConnector$RMINotifClient.this$0:Ljavax/management/remote/rmi/RMIConnector;
            getfield javax.management.remote.rmi.RMIConnector.connectionId:Ljava/lang/String;
         3: .line 1481
            aload 0 /* this */
            getfield javax.management.remote.rmi.RMIConnector$RMINotifClient.this$0:Ljavax/management/remote/rmi/RMIConnector;
            dup
            getfield javax.management.remote.rmi.RMIConnector.clientNotifCounter:J
            dup2_x1
            lconst_1
            ladd
            putfield javax.management.remote.rmi.RMIConnector.clientNotifCounter:J
         4: .line 1482
            aload 1 /* message */
         5: .line 1483
            lload 2 /* number */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
         6: .line 1478
            invokespecial javax.management.remote.JMXConnectionNotification.<init>:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/String;JLjava/lang/String;Ljava/lang/Object;)V
         7: .line 1477
            astore 4 /* n */
        start local 4 // javax.management.remote.JMXConnectionNotification n
         8: .line 1484
            aload 0 /* this */
            getfield javax.management.remote.rmi.RMIConnector$RMINotifClient.this$0:Ljavax/management/remote/rmi/RMIConnector;
            aload 4 /* n */
            invokevirtual javax.management.remote.rmi.RMIConnector.sendNotification:(Ljavax/management/Notification;)V
         9: .line 1485
            return
        end local 4 // javax.management.remote.JMXConnectionNotification n
        end local 2 // long number
        end local 1 // java.lang.String message
        end local 0 // javax.management.remote.rmi.RMIConnector$RMINotifClient this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   10     0     this  Ljavax/management/remote/rmi/RMIConnector$RMINotifClient;
            0   10     1  message  Ljava/lang/String;
            0   10     2   number  J
            8   10     4        n  Ljavax/management/remote/JMXConnectionNotification;
    MethodParameters:
         Name  Flags
      message  
      number   
}
SourceFile: "RMIConnector.java"
NestHost: javax.management.remote.rmi.RMIConnector
InnerClasses:
  private RMINotifClient = javax.management.remote.rmi.RMIConnector$RMINotifClient of javax.management.remote.rmi.RMIConnector
  final Util = javax.management.remote.rmi.RMIConnector$Util of javax.management.remote.rmi.RMIConnector