public class javax.management.relation.RelationService extends javax.management.NotificationBroadcasterSupport implements javax.management.relation.RelationServiceMBean, javax.management.MBeanRegistration, javax.management.NotificationListener
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: javax.management.relation.RelationService
  super_class: javax.management.NotificationBroadcasterSupport
{
  private java.util.Map<java.lang.String, java.lang.Object> myRelId2ObjMap;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;

  private java.util.Map<java.lang.String, java.lang.String> myRelId2RelTypeMap;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;

  private java.util.Map<javax.management.ObjectName, java.lang.String> myRelMBeanObjName2RelIdMap;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Map<Ljavax/management/ObjectName;Ljava/lang/String;>;

  private java.util.Map<java.lang.String, javax.management.relation.RelationType> myRelType2ObjMap;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Map<Ljava/lang/String;Ljavax/management/relation/RelationType;>;

  private java.util.Map<java.lang.String, java.util.List<java.lang.String>> myRelType2RelIdsMap;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;

  private java.util.Map<javax.management.ObjectName, java.util.Map<java.lang.String, java.util.List<java.lang.String>>> myRefedMBeanObjName2RelIdsMap;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Map<Ljavax/management/ObjectName;Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;>;

  private boolean myPurgeFlag;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private java.lang.Long myNtfSeqNbrCounter;
    descriptor: Ljava/lang/Long;
    flags: (0x0002) ACC_PRIVATE

  private javax.management.ObjectName myObjName;
    descriptor: Ljavax/management/ObjectName;
    flags: (0x0002) ACC_PRIVATE

  private javax.management.MBeanServer myMBeanServer;
    descriptor: Ljavax/management/MBeanServer;
    flags: (0x0002) ACC_PRIVATE

  private javax.management.relation.MBeanServerNotificationFilter myUnregNtfFilter;
    descriptor: Ljavax/management/relation/MBeanServerNotificationFilter;
    flags: (0x0002) ACC_PRIVATE

  private java.util.List<javax.management.MBeanServerNotification> myUnregNtfList;
    descriptor: Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/List<Ljavax/management/MBeanServerNotification;>;

  public void <init>(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // javax.management.relation.RelationService this
        start local 1 // boolean immediatePurgeFlag
         0: .line 157
            aload 0 /* this */
            invokespecial javax.management.NotificationBroadcasterSupport.<init>:()V
         1: .line 83
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield javax.management.relation.RelationService.myRelId2ObjMap:Ljava/util/Map;
         2: .line 87
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield javax.management.relation.RelationService.myRelId2RelTypeMap:Ljava/util/Map;
         3: .line 91
            aload 0 /* this */
         4: .line 92
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield javax.management.relation.RelationService.myRelMBeanObjName2RelIdMap:Ljava/util/Map;
         5: .line 96
            aload 0 /* this */
         6: .line 97
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield javax.management.relation.RelationService.myRelType2ObjMap:Ljava/util/Map;
         7: .line 102
            aload 0 /* this */
         8: .line 103
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield javax.management.relation.RelationService.myRelType2RelIdsMap:Ljava/util/Map;
         9: .line 111
            aload 0 /* this */
        10: .line 112
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield javax.management.relation.RelationService.myRefedMBeanObjName2RelIdsMap:Ljava/util/Map;
        11: .line 120
            aload 0 /* this */
            iconst_1
            putfield javax.management.relation.RelationService.myPurgeFlag:Z
        12: .line 125
            aload 0 /* this */
            new java.lang.Long
            dup
            lconst_0
            invokespecial java.lang.Long.<init>:(J)V
            putfield javax.management.relation.RelationService.myNtfSeqNbrCounter:Ljava/lang/Long;
        13: .line 128
            aload 0 /* this */
            aconst_null
            putfield javax.management.relation.RelationService.myObjName:Ljavax/management/ObjectName;
        14: .line 131
            aload 0 /* this */
            aconst_null
            putfield javax.management.relation.RelationService.myMBeanServer:Ljavax/management/MBeanServer;
        15: .line 135
            aload 0 /* this */
            aconst_null
            putfield javax.management.relation.RelationService.myUnregNtfFilter:Ljavax/management/relation/MBeanServerNotificationFilter;
        16: .line 140
            aload 0 /* this */
        17: .line 141
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield javax.management.relation.RelationService.myUnregNtfList:Ljava/util/List;
        18: .line 159
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
        19: .line 160
            ldc "RelationService"
        20: .line 159
            invokevirtual java.util.logging.Logger.entering:(Ljava/lang/String;Ljava/lang/String;)V
        21: .line 162
            aload 0 /* this */
            iload 1 /* immediatePurgeFlag */
            invokevirtual javax.management.relation.RelationService.setPurgeFlag:(Z)V
        22: .line 164
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
        23: .line 165
            ldc "RelationService"
        24: .line 164
            invokevirtual java.util.logging.Logger.exiting:(Ljava/lang/String;Ljava/lang/String;)V
        25: .line 166
            return
        end local 1 // boolean immediatePurgeFlag
        end local 0 // javax.management.relation.RelationService this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   26     0                this  Ljavax/management/relation/RelationService;
            0   26     1  immediatePurgeFlag  Z
    MethodParameters:
                    Name  Flags
      immediatePurgeFlag  

  public void isActive();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // javax.management.relation.RelationService this
         0: .line 179
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myMBeanServer:Ljavax/management/MBeanServer;
            ifnonnull 4
         1: .line 183
            ldc "Relation Service not registered in the MBean Server."
         2: .line 182
            astore 1 /* excMsg */
        start local 1 // java.lang.String excMsg
         3: .line 184
            new javax.management.relation.RelationServiceNotRegisteredException
            dup
            aload 1 /* excMsg */
            invokespecial javax.management.relation.RelationServiceNotRegisteredException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.lang.String excMsg
         4: .line 186
      StackMap locals:
      StackMap stack:
            return
        end local 0 // javax.management.relation.RelationService this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Ljavax/management/relation/RelationService;
            3    4     1  excMsg  Ljava/lang/String;
    Exceptions:
      throws javax.management.relation.RelationServiceNotRegisteredException

  public javax.management.ObjectName preRegister(javax.management.MBeanServer, javax.management.ObjectName);
    descriptor: (Ljavax/management/MBeanServer;Ljavax/management/ObjectName;)Ljavax/management/ObjectName;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // javax.management.relation.RelationService this
        start local 1 // javax.management.MBeanServer server
        start local 2 // javax.management.ObjectName name
         0: .line 200
            aload 0 /* this */
            aload 1 /* server */
            putfield javax.management.relation.RelationService.myMBeanServer:Ljavax/management/MBeanServer;
         1: .line 201
            aload 0 /* this */
            aload 2 /* name */
            putfield javax.management.relation.RelationService.myObjName:Ljavax/management/ObjectName;
         2: .line 202
            aload 2 /* name */
            areturn
        end local 2 // javax.management.ObjectName name
        end local 1 // javax.management.MBeanServer server
        end local 0 // javax.management.relation.RelationService this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Ljavax/management/relation/RelationService;
            0    3     1  server  Ljavax/management/MBeanServer;
            0    3     2    name  Ljavax/management/ObjectName;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
        Name  Flags
      server  
      name    

  public void postRegister(java.lang.Boolean);
    descriptor: (Ljava/lang/Boolean;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // javax.management.relation.RelationService this
        start local 1 // java.lang.Boolean registrationDone
         0: .line 207
            return
        end local 1 // java.lang.Boolean registrationDone
        end local 0 // javax.management.relation.RelationService this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    1     0              this  Ljavax/management/relation/RelationService;
            0    1     1  registrationDone  Ljava/lang/Boolean;
    MethodParameters:
                  Name  Flags
      registrationDone  

  public void preDeregister();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // javax.management.relation.RelationService this
         0: .line 213
            return
        end local 0 // javax.management.relation.RelationService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/management/relation/RelationService;
    Exceptions:
      throws java.lang.Exception

  public void postDeregister();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // javax.management.relation.RelationService this
         0: .line 218
            return
        end local 0 // javax.management.relation.RelationService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/management/relation/RelationService;

  public boolean getPurgeFlag();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.management.relation.RelationService this
         0: .line 238
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myPurgeFlag:Z
            ireturn
        end local 0 // javax.management.relation.RelationService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/management/relation/RelationService;

  public void setPurgeFlag(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // javax.management.relation.RelationService this
        start local 1 // boolean purgeFlag
         0: .line 255
            aload 0 /* this */
            iload 1 /* purgeFlag */
            putfield javax.management.relation.RelationService.myPurgeFlag:Z
         1: .line 256
            return
        end local 1 // boolean purgeFlag
        end local 0 // javax.management.relation.RelationService this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Ljavax/management/relation/RelationService;
            0    2     1  purgeFlag  Z
    MethodParameters:
           Name  Flags
      purgeFlag  

  private java.lang.Long getNotificationSequenceNumber();
    descriptor: ()Ljava/lang/Long;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=3, args_size=1
        start local 0 // javax.management.relation.RelationService this
         0: .line 264
            aconst_null
            astore 1 /* result */
        start local 1 // java.lang.Long result
         1: .line 265
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myNtfSeqNbrCounter:Ljava/lang/Long;
            dup
            astore 2
            monitorenter
         2: .line 266
            new java.lang.Long
            dup
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myNtfSeqNbrCounter:Ljava/lang/Long;
            invokevirtual java.lang.Long.longValue:()J
            lconst_1
            ladd
            invokespecial java.lang.Long.<init>:(J)V
            astore 1 /* result */
         3: .line 267
            aload 0 /* this */
            new java.lang.Long
            dup
            aload 1 /* result */
            invokevirtual java.lang.Long.longValue:()J
            invokespecial java.lang.Long.<init>:(J)V
            putfield javax.management.relation.RelationService.myNtfSeqNbrCounter:Ljava/lang/Long;
         4: .line 265
            aload 2
            monitorexit
         5: goto 8
      StackMap locals: javax.management.relation.RelationService java.lang.Long java.lang.Long
      StackMap stack: java.lang.Throwable
         6: aload 2
            monitorexit
         7: athrow
         8: .line 269
      StackMap locals:
      StackMap stack:
            aload 1 /* result */
            areturn
        end local 1 // java.lang.Long result
        end local 0 // javax.management.relation.RelationService this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0    this  Ljavax/management/relation/RelationService;
            1    9     1  result  Ljava/lang/Long;
      Exception table:
        from    to  target  type
           2     5       6  any
           6     7       6  any

  public void createRelationType(java.lang.String, javax.management.relation.RoleInfo[]);
    descriptor: (Ljava/lang/String;[Ljavax/management/relation/RoleInfo;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // javax.management.relation.RelationService this
        start local 1 // java.lang.String relationTypeName
        start local 2 // javax.management.relation.RoleInfo[] roleInfoArray
         0: .line 296
            aload 1 /* relationTypeName */
            ifnull 1
            aload 2 /* roleInfoArray */
            ifnonnull 3
         1: .line 297
      StackMap locals:
      StackMap stack:
            ldc "Invalid parameter."
            astore 3 /* excMsg */
        start local 3 // java.lang.String excMsg
         2: .line 298
            new java.lang.IllegalArgumentException
            dup
            aload 3 /* excMsg */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // java.lang.String excMsg
         3: .line 301
      StackMap locals:
      StackMap stack:
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
         4: .line 302
            ldc "createRelationType"
            aload 1 /* relationTypeName */
         5: .line 301
            invokevirtual java.util.logging.Logger.entering:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
         6: .line 306
            new javax.management.relation.RelationTypeSupport
            dup
            aload 1 /* relationTypeName */
            aload 2 /* roleInfoArray */
            invokespecial javax.management.relation.RelationTypeSupport.<init>:(Ljava/lang/String;[Ljavax/management/relation/RoleInfo;)V
         7: .line 305
            astore 3 /* relType */
        start local 3 // javax.management.relation.RelationType relType
         8: .line 308
            aload 0 /* this */
            aload 3 /* relType */
            invokevirtual javax.management.relation.RelationService.addRelationTypeInt:(Ljavax/management/relation/RelationType;)V
         9: .line 310
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
        10: .line 311
            ldc "createRelationType"
        11: .line 310
            invokevirtual java.util.logging.Logger.exiting:(Ljava/lang/String;Ljava/lang/String;)V
        12: .line 312
            return
        end local 3 // javax.management.relation.RelationType relType
        end local 2 // javax.management.relation.RoleInfo[] roleInfoArray
        end local 1 // java.lang.String relationTypeName
        end local 0 // javax.management.relation.RelationService this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   13     0              this  Ljavax/management/relation/RelationService;
            0   13     1  relationTypeName  Ljava/lang/String;
            0   13     2     roleInfoArray  [Ljavax/management/relation/RoleInfo;
            2    3     3            excMsg  Ljava/lang/String;
            8   13     3           relType  Ljavax/management/relation/RelationType;
    Exceptions:
      throws java.lang.IllegalArgumentException, javax.management.relation.InvalidRelationTypeException
    MethodParameters:
                  Name  Flags
      relationTypeName  
      roleInfoArray     

  public void addRelationType(javax.management.relation.RelationType);
    descriptor: (Ljavax/management/relation/RelationType;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=7, args_size=2
        start local 0 // javax.management.relation.RelationService this
        start local 1 // javax.management.relation.RelationType relationTypeObj
         0: .line 335
            aload 1 /* relationTypeObj */
            ifnonnull 3
         1: .line 336
            ldc "Invalid parameter."
            astore 2 /* excMsg */
        start local 2 // java.lang.String excMsg
         2: .line 337
            new java.lang.IllegalArgumentException
            dup
            aload 2 /* excMsg */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.lang.String excMsg
         3: .line 340
      StackMap locals:
      StackMap stack:
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
         4: .line 341
            ldc "addRelationType"
         5: .line 340
            invokevirtual java.util.logging.Logger.entering:(Ljava/lang/String;Ljava/lang/String;)V
         6: .line 344
            aload 1 /* relationTypeObj */
            invokeinterface javax.management.relation.RelationType.getRoleInfos:()Ljava/util/List;
            astore 2 /* roleInfoList */
        start local 2 // java.util.List roleInfoList
         7: .line 345
            aload 2 /* roleInfoList */
            ifnonnull 10
         8: .line 346
            ldc "No role info provided."
            astore 3 /* excMsg */
        start local 3 // java.lang.String excMsg
         9: .line 347
            new javax.management.relation.InvalidRelationTypeException
            dup
            aload 3 /* excMsg */
            invokespecial javax.management.relation.InvalidRelationTypeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // java.lang.String excMsg
        10: .line 350
      StackMap locals: java.util.List
      StackMap stack:
            aload 2 /* roleInfoList */
            invokeinterface java.util.List.size:()I
            anewarray javax.management.relation.RoleInfo
            astore 3 /* roleInfoArray */
        start local 3 // javax.management.relation.RoleInfo[] roleInfoArray
        11: .line 351
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        12: .line 352
            aload 2 /* roleInfoList */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 16
      StackMap locals: javax.management.relation.RelationService javax.management.relation.RelationType java.util.List javax.management.relation.RoleInfo[] int top java.util.Iterator
      StackMap stack:
        13: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.management.relation.RoleInfo
            astore 5 /* currRoleInfo */
        start local 5 // javax.management.relation.RoleInfo currRoleInfo
        14: .line 353
            aload 3 /* roleInfoArray */
            iload 4 /* i */
            aload 5 /* currRoleInfo */
            aastore
        15: .line 354
            iinc 4 /* i */ 1
        end local 5 // javax.management.relation.RoleInfo currRoleInfo
        16: .line 352
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 13
        17: .line 357
            aload 3 /* roleInfoArray */
            invokestatic javax.management.relation.RelationTypeSupport.checkRoleInfos:([Ljavax/management/relation/RoleInfo;)V
        18: .line 359
            aload 0 /* this */
            aload 1 /* relationTypeObj */
            invokevirtual javax.management.relation.RelationService.addRelationTypeInt:(Ljavax/management/relation/RelationType;)V
        19: .line 361
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
        20: .line 362
            ldc "addRelationType"
        21: .line 361
            invokevirtual java.util.logging.Logger.exiting:(Ljava/lang/String;Ljava/lang/String;)V
        22: .line 363
            return
        end local 4 // int i
        end local 3 // javax.management.relation.RoleInfo[] roleInfoArray
        end local 2 // java.util.List roleInfoList
        end local 1 // javax.management.relation.RelationType relationTypeObj
        end local 0 // javax.management.relation.RelationService this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   23     0             this  Ljavax/management/relation/RelationService;
            0   23     1  relationTypeObj  Ljavax/management/relation/RelationType;
            2    3     2           excMsg  Ljava/lang/String;
            7   23     2     roleInfoList  Ljava/util/List<Ljavax/management/relation/RoleInfo;>;
            9   10     3           excMsg  Ljava/lang/String;
           11   23     3    roleInfoArray  [Ljavax/management/relation/RoleInfo;
           12   23     4                i  I
           14   16     5     currRoleInfo  Ljavax/management/relation/RoleInfo;
    Exceptions:
      throws java.lang.IllegalArgumentException, javax.management.relation.InvalidRelationTypeException
    MethodParameters:
                 Name  Flags
      relationTypeObj  

  public java.util.List<java.lang.String> getAllRelationTypeNames();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // javax.management.relation.RelationService this
         0: .line 372
            aconst_null
            astore 1 /* result */
        start local 1 // java.util.ArrayList result
         1: .line 373
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myRelType2ObjMap:Ljava/util/Map;
            dup
            astore 2
            monitorenter
         2: .line 374
            new java.util.ArrayList
            dup
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myRelType2ObjMap:Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            astore 1 /* result */
         3: .line 373
            aload 2
            monitorexit
         4: goto 7
      StackMap locals: javax.management.relation.RelationService java.util.ArrayList java.util.Map
      StackMap stack: java.lang.Throwable
         5: aload 2
            monitorexit
         6: athrow
         7: .line 376
      StackMap locals:
      StackMap stack:
            aload 1 /* result */
            areturn
        end local 1 // java.util.ArrayList result
        end local 0 // javax.management.relation.RelationService this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Ljavax/management/relation/RelationService;
            1    8     1  result  Ljava/util/ArrayList<Ljava/lang/String;>;
      Exception table:
        from    to  target  type
           2     4       5  any
           5     6       5  any
    Signature: ()Ljava/util/List<Ljava/lang/String;>;

  public java.util.List<javax.management.relation.RoleInfo> getRoleInfos(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // javax.management.relation.RelationService this
        start local 1 // java.lang.String relationTypeName
         0: .line 395
            aload 1 /* relationTypeName */
            ifnonnull 3
         1: .line 396
            ldc "Invalid parameter."
            astore 2 /* excMsg */
        start local 2 // java.lang.String excMsg
         2: .line 397
            new java.lang.IllegalArgumentException
            dup
            aload 2 /* excMsg */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.lang.String excMsg
         3: .line 400
      StackMap locals:
      StackMap stack:
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
         4: .line 401
            ldc "getRoleInfos"
            aload 1 /* relationTypeName */
         5: .line 400
            invokevirtual java.util.logging.Logger.entering:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
         6: .line 404
            aload 0 /* this */
            aload 1 /* relationTypeName */
            invokevirtual javax.management.relation.RelationService.getRelationType:(Ljava/lang/String;)Ljavax/management/relation/RelationType;
            astore 2 /* relType */
        start local 2 // javax.management.relation.RelationType relType
         7: .line 406
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
         8: .line 407
            ldc "getRoleInfos"
         9: .line 406
            invokevirtual java.util.logging.Logger.exiting:(Ljava/lang/String;Ljava/lang/String;)V
        10: .line 408
            aload 2 /* relType */
            invokeinterface javax.management.relation.RelationType.getRoleInfos:()Ljava/util/List;
            areturn
        end local 2 // javax.management.relation.RelationType relType
        end local 1 // java.lang.String relationTypeName
        end local 0 // javax.management.relation.RelationService this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   11     0              this  Ljavax/management/relation/RelationService;
            0   11     1  relationTypeName  Ljava/lang/String;
            2    3     2            excMsg  Ljava/lang/String;
            7   11     2           relType  Ljavax/management/relation/RelationType;
    Exceptions:
      throws java.lang.IllegalArgumentException, javax.management.relation.RelationTypeNotFoundException
    Signature: (Ljava/lang/String;)Ljava/util/List<Ljavax/management/relation/RoleInfo;>;
    MethodParameters:
                  Name  Flags
      relationTypeName  

  public javax.management.relation.RoleInfo getRoleInfo(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljavax/management/relation/RoleInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=5, args_size=3
        start local 0 // javax.management.relation.RelationService this
        start local 1 // java.lang.String relationTypeName
        start local 2 // java.lang.String roleInfoName
         0: .line 431
            aload 1 /* relationTypeName */
            ifnull 1
            aload 2 /* roleInfoName */
            ifnonnull 3
         1: .line 432
      StackMap locals:
      StackMap stack:
            ldc "Invalid parameter."
            astore 3 /* excMsg */
        start local 3 // java.lang.String excMsg
         2: .line 433
            new java.lang.IllegalArgumentException
            dup
            aload 3 /* excMsg */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // java.lang.String excMsg
         3: .line 436
      StackMap locals:
      StackMap stack:
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
         4: .line 437
            ldc "getRoleInfo"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* relationTypeName */
            aastore
            dup
            iconst_1
            aload 2 /* roleInfoName */
            aastore
         5: .line 436
            invokevirtual java.util.logging.Logger.entering:(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
         6: .line 440
            aload 0 /* this */
            aload 1 /* relationTypeName */
            invokevirtual javax.management.relation.RelationService.getRelationType:(Ljava/lang/String;)Ljavax/management/relation/RelationType;
            astore 3 /* relType */
        start local 3 // javax.management.relation.RelationType relType
         7: .line 443
            aload 3 /* relType */
            aload 2 /* roleInfoName */
            invokeinterface javax.management.relation.RelationType.getRoleInfo:(Ljava/lang/String;)Ljavax/management/relation/RoleInfo;
            astore 4 /* roleInfo */
        start local 4 // javax.management.relation.RoleInfo roleInfo
         8: .line 445
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
         9: .line 446
            ldc "getRoleInfo"
        10: .line 445
            invokevirtual java.util.logging.Logger.exiting:(Ljava/lang/String;Ljava/lang/String;)V
        11: .line 447
            aload 4 /* roleInfo */
            areturn
        end local 4 // javax.management.relation.RoleInfo roleInfo
        end local 3 // javax.management.relation.RelationType relType
        end local 2 // java.lang.String roleInfoName
        end local 1 // java.lang.String relationTypeName
        end local 0 // javax.management.relation.RelationService this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   12     0              this  Ljavax/management/relation/RelationService;
            0   12     1  relationTypeName  Ljava/lang/String;
            0   12     2      roleInfoName  Ljava/lang/String;
            2    3     3            excMsg  Ljava/lang/String;
            7   12     3           relType  Ljavax/management/relation/RelationType;
            8   12     4          roleInfo  Ljavax/management/relation/RoleInfo;
    Exceptions:
      throws java.lang.IllegalArgumentException, javax.management.relation.RelationTypeNotFoundException, javax.management.relation.RoleInfoNotFoundException
    MethodParameters:
                  Name  Flags
      relationTypeName  
      roleInfoName      

  public void removeRelationType(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // javax.management.relation.RelationService this
        start local 1 // java.lang.String relationTypeName
         0: .line 469
            aload 0 /* this */
            invokevirtual javax.management.relation.RelationService.isActive:()V
         1: .line 471
            aload 1 /* relationTypeName */
            ifnonnull 4
         2: .line 472
            ldc "Invalid parameter."
            astore 2 /* excMsg */
        start local 2 // java.lang.String excMsg
         3: .line 473
            new java.lang.IllegalArgumentException
            dup
            aload 2 /* excMsg */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.lang.String excMsg
         4: .line 476
      StackMap locals:
      StackMap stack:
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
         5: .line 477
            ldc "removeRelationType"
            aload 1 /* relationTypeName */
         6: .line 476
            invokevirtual java.util.logging.Logger.entering:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
         7: .line 481
            aload 0 /* this */
            aload 1 /* relationTypeName */
            invokevirtual javax.management.relation.RelationService.getRelationType:(Ljava/lang/String;)Ljavax/management/relation/RelationType;
            pop
         8: .line 484
            aconst_null
            astore 2 /* relIdList */
        start local 2 // java.util.List relIdList
         9: .line 485
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myRelType2RelIdsMap:Ljava/util/Map;
            dup
            astore 3
            monitorenter
        10: .line 489
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myRelType2RelIdsMap:Ljava/util/Map;
            aload 1 /* relationTypeName */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.List
        11: .line 488
            astore 4 /* relIdList1 */
        start local 4 // java.util.List relIdList1
        12: .line 490
            aload 4 /* relIdList1 */
            ifnull 14
        13: .line 491
            new java.util.ArrayList
            dup
            aload 4 /* relIdList1 */
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            astore 2 /* relIdList */
        end local 4 // java.util.List relIdList1
        14: .line 485
      StackMap locals: java.util.List java.util.Map
      StackMap stack:
            aload 3
            monitorexit
        15: goto 18
      StackMap locals:
      StackMap stack: java.lang.Throwable
        16: aload 3
            monitorexit
        17: athrow
        18: .line 496
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myRelType2ObjMap:Ljava/util/Map;
            dup
            astore 3
            monitorenter
        19: .line 497
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myRelType2ObjMap:Ljava/util/Map;
            aload 1 /* relationTypeName */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        20: .line 496
            aload 3
            monitorexit
        21: goto 24
      StackMap locals: javax.management.relation.RelationService java.lang.String java.util.List java.util.Map
      StackMap stack: java.lang.Throwable
        22: aload 3
            monitorexit
        23: athrow
        24: .line 499
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myRelType2RelIdsMap:Ljava/util/Map;
            dup
            astore 3
            monitorenter
        25: .line 500
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myRelType2RelIdsMap:Ljava/util/Map;
            aload 1 /* relationTypeName */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        26: .line 499
            aload 3
            monitorexit
        27: goto 30
      StackMap locals: javax.management.relation.RelationService java.lang.String java.util.List java.util.Map
      StackMap stack: java.lang.Throwable
        28: aload 3
            monitorexit
        29: athrow
        30: .line 504
      StackMap locals:
      StackMap stack:
            aload 2 /* relIdList */
            ifnull 38
        31: .line 505
            aload 2 /* relIdList */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 37
      StackMap locals: javax.management.relation.RelationService java.lang.String java.util.List top java.util.Iterator
      StackMap stack:
        32: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 3 /* currRelId */
        start local 3 // java.lang.String currRelId
        33: .line 512
            aload 0 /* this */
            aload 3 /* currRelId */
            invokevirtual javax.management.relation.RelationService.removeRelation:(Ljava/lang/String;)V
        34: .line 513
            goto 37
      StackMap locals: javax.management.relation.RelationService java.lang.String java.util.List java.lang.String java.util.Iterator
      StackMap stack: javax.management.relation.RelationNotFoundException
        35: astore 5 /* exc1 */
        start local 5 // javax.management.relation.RelationNotFoundException exc1
        36: .line 514
            new java.lang.RuntimeException
            dup
            aload 5 /* exc1 */
            invokevirtual javax.management.relation.RelationNotFoundException.getMessage:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 5 // javax.management.relation.RelationNotFoundException exc1
        end local 3 // java.lang.String currRelId
        37: .line 505
      StackMap locals: javax.management.relation.RelationService java.lang.String java.util.List top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 32
        38: .line 519
      StackMap locals: javax.management.relation.RelationService java.lang.String java.util.List
      StackMap stack:
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
        39: .line 520
            ldc "removeRelationType"
        40: .line 519
            invokevirtual java.util.logging.Logger.exiting:(Ljava/lang/String;Ljava/lang/String;)V
        41: .line 521
            return
        end local 2 // java.util.List relIdList
        end local 1 // java.lang.String relationTypeName
        end local 0 // javax.management.relation.RelationService this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   42     0              this  Ljavax/management/relation/RelationService;
            0   42     1  relationTypeName  Ljava/lang/String;
            3    4     2            excMsg  Ljava/lang/String;
            9   42     2         relIdList  Ljava/util/List<Ljava/lang/String;>;
           12   14     4        relIdList1  Ljava/util/List<Ljava/lang/String;>;
           33   37     3         currRelId  Ljava/lang/String;
           36   37     5              exc1  Ljavax/management/relation/RelationNotFoundException;
      Exception table:
        from    to  target  type
          10    15      16  any
          16    17      16  any
          19    21      22  any
          22    23      22  any
          25    27      28  any
          28    29      28  any
          33    34      35  Class javax.management.relation.RelationNotFoundException
    Exceptions:
      throws javax.management.relation.RelationServiceNotRegisteredException, java.lang.IllegalArgumentException, javax.management.relation.RelationTypeNotFoundException
    MethodParameters:
                  Name  Flags
      relationTypeName  

  public void createRelation(java.lang.String, java.lang.String, javax.management.relation.RoleList);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljavax/management/relation/RoleList;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=5, args_size=4
        start local 0 // javax.management.relation.RelationService this
        start local 1 // java.lang.String relationId
        start local 2 // java.lang.String relationTypeName
        start local 3 // javax.management.relation.RoleList roleList
         0: .line 573
            aload 0 /* this */
            invokevirtual javax.management.relation.RelationService.isActive:()V
         1: .line 575
            aload 1 /* relationId */
            ifnull 3
         2: .line 576
            aload 2 /* relationTypeName */
            ifnonnull 5
         3: .line 577
      StackMap locals:
      StackMap stack:
            ldc "Invalid parameter."
            astore 4 /* excMsg */
        start local 4 // java.lang.String excMsg
         4: .line 578
            new java.lang.IllegalArgumentException
            dup
            aload 4 /* excMsg */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // java.lang.String excMsg
         5: .line 581
      StackMap locals:
      StackMap stack:
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
         6: .line 582
            ldc "createRelation"
         7: .line 583
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* relationId */
            aastore
            dup
            iconst_1
            aload 2 /* relationTypeName */
            aastore
            dup
            iconst_2
            aload 3 /* roleList */
            aastore
         8: .line 581
            invokevirtual java.util.logging.Logger.entering:(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
         9: .line 587
            new javax.management.relation.RelationSupport
            dup
            aload 1 /* relationId */
        10: .line 588
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myObjName:Ljavax/management/ObjectName;
        11: .line 589
            aload 2 /* relationTypeName */
        12: .line 590
            aload 3 /* roleList */
        13: .line 587
            invokespecial javax.management.relation.RelationSupport.<init>:(Ljava/lang/String;Ljavax/management/ObjectName;Ljava/lang/String;Ljavax/management/relation/RoleList;)V
            astore 4 /* relObj */
        start local 4 // javax.management.relation.RelationSupport relObj
        14: .line 597
            aload 0 /* this */
            iconst_1
        15: .line 598
            aload 4 /* relObj */
        16: .line 599
            aconst_null
        17: .line 600
            aload 1 /* relationId */
        18: .line 601
            aload 2 /* relationTypeName */
        19: .line 602
            aload 3 /* roleList */
        20: .line 597
            invokevirtual javax.management.relation.RelationService.addRelationInt:(ZLjavax/management/relation/RelationSupport;Ljavax/management/ObjectName;Ljava/lang/String;Ljava/lang/String;Ljavax/management/relation/RoleList;)V
        21: .line 603
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
        22: .line 604
            ldc "createRelation"
        23: .line 603
            invokevirtual java.util.logging.Logger.exiting:(Ljava/lang/String;Ljava/lang/String;)V
        24: .line 605
            return
        end local 4 // javax.management.relation.RelationSupport relObj
        end local 3 // javax.management.relation.RoleList roleList
        end local 2 // java.lang.String relationTypeName
        end local 1 // java.lang.String relationId
        end local 0 // javax.management.relation.RelationService this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   25     0              this  Ljavax/management/relation/RelationService;
            0   25     1        relationId  Ljava/lang/String;
            0   25     2  relationTypeName  Ljava/lang/String;
            0   25     3          roleList  Ljavax/management/relation/RoleList;
            4    5     4            excMsg  Ljava/lang/String;
           14   25     4            relObj  Ljavax/management/relation/RelationSupport;
    Exceptions:
      throws javax.management.relation.RelationServiceNotRegisteredException, java.lang.IllegalArgumentException, javax.management.relation.RoleNotFoundException, javax.management.relation.InvalidRelationIdException, javax.management.relation.RelationTypeNotFoundException, javax.management.relation.InvalidRoleValueException
    MethodParameters:
                  Name  Flags
      relationId        
      relationTypeName  
      roleList          

  public void addRelation(javax.management.ObjectName);
    descriptor: (Ljavax/management/ObjectName;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=8, args_size=2
        start local 0 // javax.management.relation.RelationService this
        start local 1 // javax.management.ObjectName relationObjectName
         0: .line 664
            aload 1 /* relationObjectName */
            ifnonnull 3
         1: .line 665
            ldc "Invalid parameter."
            astore 2 /* excMsg */
        start local 2 // java.lang.String excMsg
         2: .line 666
            new java.lang.IllegalArgumentException
            dup
            aload 2 /* excMsg */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.lang.String excMsg
         3: .line 669
      StackMap locals:
      StackMap stack:
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
         4: .line 670
            ldc "addRelation"
            aload 1 /* relationObjectName */
         5: .line 669
            invokevirtual java.util.logging.Logger.entering:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
         6: .line 673
            aload 0 /* this */
            invokevirtual javax.management.relation.RelationService.isActive:()V
         7: .line 678
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myMBeanServer:Ljavax/management/MBeanServer;
            aload 1 /* relationObjectName */
            ldc "javax.management.relation.Relation"
            invokeinterface javax.management.MBeanServer.isInstanceOf:(Ljavax/management/ObjectName;Ljava/lang/String;)Z
            ifne 10
         8: .line 679
            ldc "This MBean does not implement the Relation interface."
            astore 2 /* excMsg */
        start local 2 // java.lang.String excMsg
         9: .line 680
            new java.lang.NoSuchMethodException
            dup
            aload 2 /* excMsg */
            invokespecial java.lang.NoSuchMethodException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.lang.String excMsg
        10: .line 687
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 2 /* relId */
        start local 2 // java.lang.String relId
        11: .line 689
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myMBeanServer:Ljavax/management/MBeanServer;
            aload 1 /* relationObjectName */
        12: .line 690
            ldc "RelationId"
        13: .line 689
            invokeinterface javax.management.MBeanServer.getAttribute:(Ljavax/management/ObjectName;Ljava/lang/String;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 2 /* relId */
        14: .line 692
            goto 23
      StackMap locals: javax.management.relation.RelationService javax.management.ObjectName java.lang.String
      StackMap stack: javax.management.MBeanException
        15: astore 3 /* exc1 */
        start local 3 // javax.management.MBeanException exc1
        16: .line 693
            new java.lang.RuntimeException
            dup
        17: .line 694
            aload 3 /* exc1 */
            invokevirtual javax.management.MBeanException.getTargetException:()Ljava/lang/Exception;
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
        18: .line 693
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // javax.management.MBeanException exc1
        19: .line 695
      StackMap locals:
      StackMap stack: javax.management.ReflectionException
            astore 3 /* exc2 */
        start local 3 // javax.management.ReflectionException exc2
        20: .line 696
            new java.lang.RuntimeException
            dup
            aload 3 /* exc2 */
            invokevirtual javax.management.ReflectionException.getMessage:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // javax.management.ReflectionException exc2
        21: .line 697
      StackMap locals:
      StackMap stack: javax.management.AttributeNotFoundException
            astore 3 /* exc3 */
        start local 3 // javax.management.AttributeNotFoundException exc3
        22: .line 698
            new java.lang.RuntimeException
            dup
            aload 3 /* exc3 */
            invokevirtual javax.management.AttributeNotFoundException.getMessage:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // javax.management.AttributeNotFoundException exc3
        23: .line 701
      StackMap locals:
      StackMap stack:
            aload 2 /* relId */
            ifnonnull 26
        24: .line 702
            ldc "This MBean does not provide a relation id."
            astore 3 /* excMsg */
        start local 3 // java.lang.String excMsg
        25: .line 703
            new javax.management.relation.InvalidRelationIdException
            dup
            aload 3 /* excMsg */
            invokespecial javax.management.relation.InvalidRelationIdException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // java.lang.String excMsg
        26: .line 710
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 3 /* relServObjName */
        start local 3 // javax.management.ObjectName relServObjName
        27: .line 713
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myMBeanServer:Ljavax/management/MBeanServer;
            aload 1 /* relationObjectName */
        28: .line 714
            ldc "RelationServiceName"
        29: .line 713
            invokeinterface javax.management.MBeanServer.getAttribute:(Ljavax/management/ObjectName;Ljava/lang/String;)Ljava/lang/Object;
        30: .line 712
            checkcast javax.management.ObjectName
            astore 3 /* relServObjName */
        31: .line 716
            goto 40
      StackMap locals: javax.management.relation.RelationService javax.management.ObjectName java.lang.String javax.management.ObjectName
      StackMap stack: javax.management.MBeanException
        32: astore 4 /* exc1 */
        start local 4 // javax.management.MBeanException exc1
        33: .line 717
            new java.lang.RuntimeException
            dup
        34: .line 718
            aload 4 /* exc1 */
            invokevirtual javax.management.MBeanException.getTargetException:()Ljava/lang/Exception;
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
        35: .line 717
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // javax.management.MBeanException exc1
        36: .line 719
      StackMap locals:
      StackMap stack: javax.management.ReflectionException
            astore 4 /* exc2 */
        start local 4 // javax.management.ReflectionException exc2
        37: .line 720
            new java.lang.RuntimeException
            dup
            aload 4 /* exc2 */
            invokevirtual javax.management.ReflectionException.getMessage:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // javax.management.ReflectionException exc2
        38: .line 721
      StackMap locals:
      StackMap stack: javax.management.AttributeNotFoundException
            astore 4 /* exc3 */
        start local 4 // javax.management.AttributeNotFoundException exc3
        39: .line 722
            new java.lang.RuntimeException
            dup
            aload 4 /* exc3 */
            invokevirtual javax.management.AttributeNotFoundException.getMessage:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // javax.management.AttributeNotFoundException exc3
        40: .line 725
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 4 /* badRelServFlag */
        start local 4 // boolean badRelServFlag
        41: .line 726
            aload 3 /* relServObjName */
            ifnonnull 44
        42: .line 727
            iconst_1
            istore 4 /* badRelServFlag */
        43: .line 729
            goto 46
      StackMap locals: int
      StackMap stack:
        44: aload 3 /* relServObjName */
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myObjName:Ljavax/management/ObjectName;
            invokevirtual javax.management.ObjectName.equals:(Ljava/lang/Object;)Z
            ifne 46
        45: .line 730
            iconst_1
            istore 4 /* badRelServFlag */
        46: .line 732
      StackMap locals:
      StackMap stack:
            iload 4 /* badRelServFlag */
            ifeq 49
        47: .line 733
            ldc "The Relation Service referenced in the MBean is not the current one."
            astore 5 /* excMsg */
        start local 5 // java.lang.String excMsg
        48: .line 734
            new javax.management.relation.InvalidRelationServiceException
            dup
            aload 5 /* excMsg */
            invokespecial javax.management.relation.InvalidRelationServiceException.<init>:(Ljava/lang/String;)V
            athrow
        end local 5 // java.lang.String excMsg
        49: .line 740
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 5 /* relTypeName */
        start local 5 // java.lang.String relTypeName
        50: .line 742
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myMBeanServer:Ljavax/management/MBeanServer;
            aload 1 /* relationObjectName */
        51: .line 743
            ldc "RelationTypeName"
        52: .line 742
            invokeinterface javax.management.MBeanServer.getAttribute:(Ljavax/management/ObjectName;Ljava/lang/String;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 5 /* relTypeName */
        53: .line 745
            goto 62
      StackMap locals: javax.management.relation.RelationService javax.management.ObjectName java.lang.String javax.management.ObjectName int java.lang.String
      StackMap stack: javax.management.MBeanException
        54: astore 6 /* exc1 */
        start local 6 // javax.management.MBeanException exc1
        55: .line 746
            new java.lang.RuntimeException
            dup
        56: .line 747
            aload 6 /* exc1 */
            invokevirtual javax.management.MBeanException.getTargetException:()Ljava/lang/Exception;
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
        57: .line 746
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 6 // javax.management.MBeanException exc1
        58: .line 748
      StackMap locals:
      StackMap stack: javax.management.ReflectionException
            astore 6 /* exc2 */
        start local 6 // javax.management.ReflectionException exc2
        59: .line 749
            new java.lang.RuntimeException
            dup
            aload 6 /* exc2 */
            invokevirtual javax.management.ReflectionException.getMessage:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 6 // javax.management.ReflectionException exc2
        60: .line 750
      StackMap locals:
      StackMap stack: javax.management.AttributeNotFoundException
            astore 6 /* exc3 */
        start local 6 // javax.management.AttributeNotFoundException exc3
        61: .line 751
            new java.lang.RuntimeException
            dup
            aload 6 /* exc3 */
            invokevirtual javax.management.AttributeNotFoundException.getMessage:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 6 // javax.management.AttributeNotFoundException exc3
        62: .line 753
      StackMap locals:
      StackMap stack:
            aload 5 /* relTypeName */
            ifnonnull 65
        63: .line 754
            ldc "No relation type provided."
            astore 6 /* excMsg */
        start local 6 // java.lang.String excMsg
        64: .line 755
            new javax.management.relation.RelationTypeNotFoundException
            dup
            aload 6 /* excMsg */
            invokespecial javax.management.relation.RelationTypeNotFoundException.<init>:(Ljava/lang/String;)V
            athrow
        end local 6 // java.lang.String excMsg
        65: .line 761
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 6 /* roleList */
        start local 6 // javax.management.relation.RoleList roleList
        66: .line 763
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myMBeanServer:Ljavax/management/MBeanServer;
            aload 1 /* relationObjectName */
        67: .line 764
            ldc "retrieveAllRoles"
        68: .line 765
            aconst_null
        69: .line 766
            aconst_null
        70: .line 763
            invokeinterface javax.management.MBeanServer.invoke:(Ljavax/management/ObjectName;Ljava/lang/String;[Ljava/lang/Object;[Ljava/lang/String;)Ljava/lang/Object;
            checkcast javax.management.relation.RoleList
            astore 6 /* roleList */
        71: .line 767
            goto 78
      StackMap locals: javax.management.relation.RelationService javax.management.ObjectName java.lang.String javax.management.ObjectName int java.lang.String javax.management.relation.RoleList
      StackMap stack: javax.management.MBeanException
        72: astore 7 /* exc1 */
        start local 7 // javax.management.MBeanException exc1
        73: .line 768
            new java.lang.RuntimeException
            dup
        74: .line 769
            aload 7 /* exc1 */
            invokevirtual javax.management.MBeanException.getTargetException:()Ljava/lang/Exception;
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
        75: .line 768
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 7 // javax.management.MBeanException exc1
        76: .line 770
      StackMap locals:
      StackMap stack: javax.management.ReflectionException
            astore 7 /* exc2 */
        start local 7 // javax.management.ReflectionException exc2
        77: .line 771
            new java.lang.RuntimeException
            dup
            aload 7 /* exc2 */
            invokevirtual javax.management.ReflectionException.getMessage:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 7 // javax.management.ReflectionException exc2
        78: .line 776
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
        79: .line 777
            aconst_null
        80: .line 778
            aload 1 /* relationObjectName */
        81: .line 779
            aload 2 /* relId */
        82: .line 780
            aload 5 /* relTypeName */
        83: .line 781
            aload 6 /* roleList */
        84: .line 776
            invokevirtual javax.management.relation.RelationService.addRelationInt:(ZLjavax/management/relation/RelationSupport;Ljavax/management/ObjectName;Ljava/lang/String;Ljava/lang/String;Ljavax/management/relation/RoleList;)V
        85: .line 783
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myRelMBeanObjName2RelIdMap:Ljava/util/Map;
            dup
            astore 7
            monitorenter
        86: .line 784
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myRelMBeanObjName2RelIdMap:Ljava/util/Map;
            aload 1 /* relationObjectName */
            aload 2 /* relId */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        87: .line 783
            aload 7
            monitorexit
        88: goto 91
      StackMap locals: javax.management.relation.RelationService javax.management.ObjectName java.lang.String javax.management.ObjectName int java.lang.String javax.management.relation.RoleList java.util.Map
      StackMap stack: java.lang.Throwable
        89: aload 7
            monitorexit
        90: athrow
        91: .line 792
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myMBeanServer:Ljavax/management/MBeanServer;
            aload 1 /* relationObjectName */
        92: .line 793
            new javax.management.Attribute
            dup
        93: .line 794
            ldc "RelationServiceManagementFlag"
        94: .line 795
            getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
        95: .line 793
            invokespecial javax.management.Attribute.<init>:(Ljava/lang/String;Ljava/lang/Object;)V
        96: .line 792
            invokeinterface javax.management.MBeanServer.setAttribute:(Ljavax/management/ObjectName;Ljavax/management/Attribute;)V
        97: .line 796
            goto 99
      StackMap locals:
      StackMap stack: java.lang.Exception
        98: pop
        99: .line 802
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 7 /* newRefList */
        start local 7 // java.util.List newRefList
       100: .line 803
            aload 7 /* newRefList */
            aload 1 /* relationObjectName */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
       101: .line 804
            aload 0 /* this */
            aload 7 /* newRefList */
            aconst_null
            invokevirtual javax.management.relation.RelationService.updateUnregistrationListener:(Ljava/util/List;Ljava/util/List;)V
       102: .line 806
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
       103: .line 807
            ldc "addRelation"
       104: .line 806
            invokevirtual java.util.logging.Logger.exiting:(Ljava/lang/String;Ljava/lang/String;)V
       105: .line 808
            return
        end local 7 // java.util.List newRefList
        end local 6 // javax.management.relation.RoleList roleList
        end local 5 // java.lang.String relTypeName
        end local 4 // boolean badRelServFlag
        end local 3 // javax.management.ObjectName relServObjName
        end local 2 // java.lang.String relId
        end local 1 // javax.management.ObjectName relationObjectName
        end local 0 // javax.management.relation.RelationService this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0  106     0                this  Ljavax/management/relation/RelationService;
            0  106     1  relationObjectName  Ljavax/management/ObjectName;
            2    3     2              excMsg  Ljava/lang/String;
            9   10     2              excMsg  Ljava/lang/String;
           11  106     2               relId  Ljava/lang/String;
           16   19     3                exc1  Ljavax/management/MBeanException;
           20   21     3                exc2  Ljavax/management/ReflectionException;
           22   23     3                exc3  Ljavax/management/AttributeNotFoundException;
           25   26     3              excMsg  Ljava/lang/String;
           27  106     3      relServObjName  Ljavax/management/ObjectName;
           33   36     4                exc1  Ljavax/management/MBeanException;
           37   38     4                exc2  Ljavax/management/ReflectionException;
           39   40     4                exc3  Ljavax/management/AttributeNotFoundException;
           41  106     4      badRelServFlag  Z
           48   49     5              excMsg  Ljava/lang/String;
           50  106     5         relTypeName  Ljava/lang/String;
           55   58     6                exc1  Ljavax/management/MBeanException;
           59   60     6                exc2  Ljavax/management/ReflectionException;
           61   62     6                exc3  Ljavax/management/AttributeNotFoundException;
           64   65     6              excMsg  Ljava/lang/String;
           66  106     6            roleList  Ljavax/management/relation/RoleList;
           73   76     7                exc1  Ljavax/management/MBeanException;
           77   78     7                exc2  Ljavax/management/ReflectionException;
          100  106     7          newRefList  Ljava/util/List<Ljavax/management/ObjectName;>;
      Exception table:
        from    to  target  type
          11    14      15  Class javax.management.MBeanException
          11    14      19  Class javax.management.ReflectionException
          11    14      21  Class javax.management.AttributeNotFoundException
          27    31      32  Class javax.management.MBeanException
          27    31      36  Class javax.management.ReflectionException
          27    31      38  Class javax.management.AttributeNotFoundException
          50    53      54  Class javax.management.MBeanException
          50    53      58  Class javax.management.ReflectionException
          50    53      60  Class javax.management.AttributeNotFoundException
          66    71      72  Class javax.management.MBeanException
          66    71      76  Class javax.management.ReflectionException
          86    88      89  any
          89    90      89  any
          91    97      98  Class java.lang.Exception
    Exceptions:
      throws java.lang.IllegalArgumentException, javax.management.relation.RelationServiceNotRegisteredException, java.lang.NoSuchMethodException, javax.management.relation.InvalidRelationIdException, javax.management.InstanceNotFoundException, javax.management.relation.InvalidRelationServiceException, javax.management.relation.RelationTypeNotFoundException, javax.management.relation.RoleNotFoundException, javax.management.relation.InvalidRoleValueException
    MethodParameters:
                    Name  Flags
      relationObjectName  

  public javax.management.ObjectName isRelationMBean(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljavax/management/ObjectName;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // javax.management.relation.RelationService this
        start local 1 // java.lang.String relationId
         0: .line 829
            aload 1 /* relationId */
            ifnonnull 3
         1: .line 830
            ldc "Invalid parameter."
            astore 2 /* excMsg */
        start local 2 // java.lang.String excMsg
         2: .line 831
            new java.lang.IllegalArgumentException
            dup
            aload 2 /* excMsg */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.lang.String excMsg
         3: .line 834
      StackMap locals:
      StackMap stack:
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
         4: .line 835
            ldc "isRelationMBean"
            aload 1 /* relationId */
         5: .line 834
            invokevirtual java.util.logging.Logger.entering:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
         6: .line 838
            aload 0 /* this */
            aload 1 /* relationId */
            invokevirtual javax.management.relation.RelationService.getRelation:(Ljava/lang/String;)Ljava/lang/Object;
            astore 2 /* result */
        start local 2 // java.lang.Object result
         7: .line 839
            aload 2 /* result */
            instanceof javax.management.ObjectName
            ifeq 9
         8: .line 840
            aload 2 /* result */
            checkcast javax.management.ObjectName
            areturn
         9: .line 842
      StackMap locals: java.lang.Object
      StackMap stack:
            aconst_null
            areturn
        end local 2 // java.lang.Object result
        end local 1 // java.lang.String relationId
        end local 0 // javax.management.relation.RelationService this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   10     0        this  Ljavax/management/relation/RelationService;
            0   10     1  relationId  Ljava/lang/String;
            2    3     2      excMsg  Ljava/lang/String;
            7   10     2      result  Ljava/lang/Object;
    Exceptions:
      throws java.lang.IllegalArgumentException, javax.management.relation.RelationNotFoundException
    MethodParameters:
            Name  Flags
      relationId  

  public java.lang.String isRelation(javax.management.ObjectName);
    descriptor: (Ljavax/management/ObjectName;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // javax.management.relation.RelationService this
        start local 1 // javax.management.ObjectName objectName
         0: .line 860
            aload 1 /* objectName */
            ifnonnull 3
         1: .line 861
            ldc "Invalid parameter."
            astore 2 /* excMsg */
        start local 2 // java.lang.String excMsg
         2: .line 862
            new java.lang.IllegalArgumentException
            dup
            aload 2 /* excMsg */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.lang.String excMsg
         3: .line 865
      StackMap locals:
      StackMap stack:
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
         4: .line 866
            ldc "isRelation"
            aload 1 /* objectName */
         5: .line 865
            invokevirtual java.util.logging.Logger.entering:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
         6: .line 868
            aconst_null
            astore 2 /* result */
        start local 2 // java.lang.String result
         7: .line 869
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myRelMBeanObjName2RelIdMap:Ljava/util/Map;
            dup
            astore 3
            monitorenter
         8: .line 870
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myRelMBeanObjName2RelIdMap:Ljava/util/Map;
            aload 1 /* objectName */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 4 /* relId */
        start local 4 // java.lang.String relId
         9: .line 871
            aload 4 /* relId */
            ifnull 11
        10: .line 872
            aload 4 /* relId */
            astore 2 /* result */
        end local 4 // java.lang.String relId
        11: .line 869
      StackMap locals: java.lang.String java.util.Map
      StackMap stack:
            aload 3
            monitorexit
        12: goto 15
      StackMap locals:
      StackMap stack: java.lang.Throwable
        13: aload 3
            monitorexit
        14: athrow
        15: .line 875
      StackMap locals:
      StackMap stack:
            aload 2 /* result */
            areturn
        end local 2 // java.lang.String result
        end local 1 // javax.management.ObjectName objectName
        end local 0 // javax.management.relation.RelationService this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   16     0        this  Ljavax/management/relation/RelationService;
            0   16     1  objectName  Ljavax/management/ObjectName;
            2    3     2      excMsg  Ljava/lang/String;
            7   16     2      result  Ljava/lang/String;
            9   11     4       relId  Ljava/lang/String;
      Exception table:
        from    to  target  type
           8    12      13  any
          13    14      13  any
    Exceptions:
      throws java.lang.IllegalArgumentException
    MethodParameters:
            Name  Flags
      objectName  

  public java.lang.Boolean hasRelation(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Boolean;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // javax.management.relation.RelationService this
        start local 1 // java.lang.String relationId
         0: .line 891
            aload 1 /* relationId */
            ifnonnull 3
         1: .line 892
            ldc "Invalid parameter."
            astore 2 /* excMsg */
        start local 2 // java.lang.String excMsg
         2: .line 893
            new java.lang.IllegalArgumentException
            dup
            aload 2 /* excMsg */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.lang.String excMsg
         3: .line 896
      StackMap locals:
      StackMap stack:
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
         4: .line 897
            ldc "hasRelation"
            aload 1 /* relationId */
         5: .line 896
            invokevirtual java.util.logging.Logger.entering:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
         6: .line 901
            aload 0 /* this */
            aload 1 /* relationId */
            invokevirtual javax.management.relation.RelationService.getRelation:(Ljava/lang/String;)Ljava/lang/Object;
            pop
         7: .line 902
            iconst_1
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
         8: areturn
         9: .line 903
      StackMap locals:
      StackMap stack: javax.management.relation.RelationNotFoundException
            pop
        10: .line 904
            iconst_0
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            areturn
        end local 1 // java.lang.String relationId
        end local 0 // javax.management.relation.RelationService this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   11     0        this  Ljavax/management/relation/RelationService;
            0   11     1  relationId  Ljava/lang/String;
            2    3     2      excMsg  Ljava/lang/String;
      Exception table:
        from    to  target  type
           6     8       9  Class javax.management.relation.RelationNotFoundException
    Exceptions:
      throws java.lang.IllegalArgumentException
    MethodParameters:
            Name  Flags
      relationId  

  public java.util.List<java.lang.String> getAllRelationIds();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // javax.management.relation.RelationService this
         0: .line 915
            aconst_null
            astore 1 /* result */
        start local 1 // java.util.List result
         1: .line 916
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myRelId2ObjMap:Ljava/util/Map;
            dup
            astore 2
            monitorenter
         2: .line 917
            new java.util.ArrayList
            dup
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myRelId2ObjMap:Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            astore 1 /* result */
         3: .line 916
            aload 2
            monitorexit
         4: goto 7
      StackMap locals: javax.management.relation.RelationService java.util.List java.util.Map
      StackMap stack: java.lang.Throwable
         5: aload 2
            monitorexit
         6: athrow
         7: .line 919
      StackMap locals:
      StackMap stack:
            aload 1 /* result */
            areturn
        end local 1 // java.util.List result
        end local 0 // javax.management.relation.RelationService this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Ljavax/management/relation/RelationService;
            1    8     1  result  Ljava/util/List<Ljava/lang/String;>;
      Exception table:
        from    to  target  type
           2     4       5  any
           5     6       5  any
    Signature: ()Ljava/util/List<Ljava/lang/String;>;

  public java.lang.Integer checkRoleReading(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Integer;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=6, args_size=3
        start local 0 // javax.management.relation.RelationService this
        start local 1 // java.lang.String roleName
        start local 2 // java.lang.String relationTypeName
         0: .line 943
            aload 1 /* roleName */
            ifnull 1
            aload 2 /* relationTypeName */
            ifnonnull 3
         1: .line 944
      StackMap locals:
      StackMap stack:
            ldc "Invalid parameter."
            astore 3 /* excMsg */
        start local 3 // java.lang.String excMsg
         2: .line 945
            new java.lang.IllegalArgumentException
            dup
            aload 3 /* excMsg */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // java.lang.String excMsg
         3: .line 948
      StackMap locals:
      StackMap stack:
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
         4: .line 949
            ldc "checkRoleReading"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* roleName */
            aastore
            dup
            iconst_1
            aload 2 /* relationTypeName */
            aastore
         5: .line 948
            invokevirtual java.util.logging.Logger.entering:(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
         6: .line 951
            aconst_null
            astore 3 /* result */
        start local 3 // java.lang.Integer result
         7: .line 954
            aload 0 /* this */
            aload 2 /* relationTypeName */
            invokevirtual javax.management.relation.RelationService.getRelationType:(Ljava/lang/String;)Ljavax/management/relation/RelationType;
            astore 4 /* relType */
        start local 4 // javax.management.relation.RelationType relType
         8: .line 959
            aload 4 /* relType */
            aload 1 /* roleName */
            invokeinterface javax.management.relation.RelationType.getRoleInfo:(Ljava/lang/String;)Ljavax/management/relation/RoleInfo;
            astore 5 /* roleInfo */
        start local 5 // javax.management.relation.RoleInfo roleInfo
         9: .line 961
            aload 0 /* this */
            iconst_1
        10: .line 962
            aload 1 /* roleName */
        11: .line 963
            aconst_null
        12: .line 964
            aload 5 /* roleInfo */
        13: .line 965
            iconst_0
        14: .line 961
            invokevirtual javax.management.relation.RelationService.checkRoleInt:(ILjava/lang/String;Ljava/util/List;Ljavax/management/relation/RoleInfo;Z)Ljava/lang/Integer;
            astore 3 /* result */
        end local 5 // javax.management.relation.RoleInfo roleInfo
        15: .line 967
            goto 18
      StackMap locals: javax.management.relation.RelationService java.lang.String java.lang.String java.lang.Integer javax.management.relation.RelationType
      StackMap stack: javax.management.relation.RoleInfoNotFoundException
        16: pop
        17: .line 968
            new java.lang.Integer
            dup
            iconst_1
            invokespecial java.lang.Integer.<init>:(I)V
            astore 3 /* result */
        18: .line 971
      StackMap locals:
      StackMap stack:
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
        19: .line 972
            ldc "checkRoleReading"
        20: .line 971
            invokevirtual java.util.logging.Logger.exiting:(Ljava/lang/String;Ljava/lang/String;)V
        21: .line 973
            aload 3 /* result */
            areturn
        end local 4 // javax.management.relation.RelationType relType
        end local 3 // java.lang.Integer result
        end local 2 // java.lang.String relationTypeName
        end local 1 // java.lang.String roleName
        end local 0 // javax.management.relation.RelationService this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   22     0              this  Ljavax/management/relation/RelationService;
            0   22     1          roleName  Ljava/lang/String;
            0   22     2  relationTypeName  Ljava/lang/String;
            2    3     3            excMsg  Ljava/lang/String;
            7   22     3            result  Ljava/lang/Integer;
            8   22     4           relType  Ljavax/management/relation/RelationType;
            9   15     5          roleInfo  Ljavax/management/relation/RoleInfo;
      Exception table:
        from    to  target  type
           8    15      16  Class javax.management.relation.RoleInfoNotFoundException
    Exceptions:
      throws java.lang.IllegalArgumentException, javax.management.relation.RelationTypeNotFoundException
    MethodParameters:
                  Name  Flags
      roleName          
      relationTypeName  

  public java.lang.Integer checkRoleWriting(javax.management.relation.Role, java.lang.String, java.lang.Boolean);
    descriptor: (Ljavax/management/relation/Role;Ljava/lang/String;Ljava/lang/Boolean;)Ljava/lang/Integer;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=10, args_size=4
        start local 0 // javax.management.relation.RelationService this
        start local 1 // javax.management.relation.Role role
        start local 2 // java.lang.String relationTypeName
        start local 3 // java.lang.Boolean initFlag
         0: .line 1003
            aload 1 /* role */
            ifnull 3
         1: .line 1004
            aload 2 /* relationTypeName */
            ifnull 3
         2: .line 1005
            aload 3 /* initFlag */
            ifnonnull 5
         3: .line 1006
      StackMap locals:
      StackMap stack:
            ldc "Invalid parameter."
            astore 4 /* excMsg */
        start local 4 // java.lang.String excMsg
         4: .line 1007
            new java.lang.IllegalArgumentException
            dup
            aload 4 /* excMsg */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // java.lang.String excMsg
         5: .line 1010
      StackMap locals:
      StackMap stack:
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
         6: .line 1011
            ldc "checkRoleWriting"
         7: .line 1012
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* role */
            aastore
            dup
            iconst_1
            aload 2 /* relationTypeName */
            aastore
            dup
            iconst_2
            aload 3 /* initFlag */
            aastore
         8: .line 1010
            invokevirtual java.util.logging.Logger.entering:(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
         9: .line 1015
            aload 0 /* this */
            aload 2 /* relationTypeName */
            invokevirtual javax.management.relation.RelationService.getRelationType:(Ljava/lang/String;)Ljavax/management/relation/RelationType;
            astore 4 /* relType */
        start local 4 // javax.management.relation.RelationType relType
        10: .line 1017
            aload 1 /* role */
            invokevirtual javax.management.relation.Role.getRoleName:()Ljava/lang/String;
            astore 5 /* roleName */
        start local 5 // java.lang.String roleName
        11: .line 1018
            aload 1 /* role */
            invokevirtual javax.management.relation.Role.getRoleValue:()Ljava/util/List;
            astore 6 /* roleValue */
        start local 6 // java.util.List roleValue
        12: .line 1019
            iconst_1
            istore 7 /* writeChkFlag */
        start local 7 // boolean writeChkFlag
        13: .line 1020
            aload 3 /* initFlag */
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifeq 15
        14: .line 1021
            iconst_0
            istore 7 /* writeChkFlag */
        15: .line 1024
      StackMap locals: javax.management.relation.RelationService javax.management.relation.Role java.lang.String java.lang.Boolean javax.management.relation.RelationType java.lang.String java.util.List int
      StackMap stack:
            aconst_null
            astore 8 /* roleInfo */
        start local 8 // javax.management.relation.RoleInfo roleInfo
        16: .line 1026
            aload 4 /* relType */
            aload 5 /* roleName */
            invokeinterface javax.management.relation.RelationType.getRoleInfo:(Ljava/lang/String;)Ljavax/management/relation/RoleInfo;
            astore 8 /* roleInfo */
        17: .line 1027
            goto 23
      StackMap locals: javax.management.relation.RelationService javax.management.relation.Role java.lang.String java.lang.Boolean javax.management.relation.RelationType java.lang.String java.util.List int javax.management.relation.RoleInfo
      StackMap stack: javax.management.relation.RoleInfoNotFoundException
        18: pop
        19: .line 1028
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
        20: .line 1029
            ldc "checkRoleWriting"
        21: .line 1028
            invokevirtual java.util.logging.Logger.exiting:(Ljava/lang/String;Ljava/lang/String;)V
        22: .line 1030
            new java.lang.Integer
            dup
            iconst_1
            invokespecial java.lang.Integer.<init>:(I)V
            areturn
        23: .line 1033
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_2
        24: .line 1034
            aload 5 /* roleName */
        25: .line 1035
            aload 6 /* roleValue */
        26: .line 1036
            aload 8 /* roleInfo */
        27: .line 1037
            iload 7 /* writeChkFlag */
        28: .line 1033
            invokevirtual javax.management.relation.RelationService.checkRoleInt:(ILjava/lang/String;Ljava/util/List;Ljavax/management/relation/RoleInfo;Z)Ljava/lang/Integer;
            astore 9 /* result */
        start local 9 // java.lang.Integer result
        29: .line 1039
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
        30: .line 1040
            ldc "checkRoleWriting"
        31: .line 1039
            invokevirtual java.util.logging.Logger.exiting:(Ljava/lang/String;Ljava/lang/String;)V
        32: .line 1041
            aload 9 /* result */
            areturn
        end local 9 // java.lang.Integer result
        end local 8 // javax.management.relation.RoleInfo roleInfo
        end local 7 // boolean writeChkFlag
        end local 6 // java.util.List roleValue
        end local 5 // java.lang.String roleName
        end local 4 // javax.management.relation.RelationType relType
        end local 3 // java.lang.Boolean initFlag
        end local 2 // java.lang.String relationTypeName
        end local 1 // javax.management.relation.Role role
        end local 0 // javax.management.relation.RelationService this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   33     0              this  Ljavax/management/relation/RelationService;
            0   33     1              role  Ljavax/management/relation/Role;
            0   33     2  relationTypeName  Ljava/lang/String;
            0   33     3          initFlag  Ljava/lang/Boolean;
            4    5     4            excMsg  Ljava/lang/String;
           10   33     4           relType  Ljavax/management/relation/RelationType;
           11   33     5          roleName  Ljava/lang/String;
           12   33     6         roleValue  Ljava/util/List<Ljavax/management/ObjectName;>;
           13   33     7      writeChkFlag  Z
           16   33     8          roleInfo  Ljavax/management/relation/RoleInfo;
           29   33     9            result  Ljava/lang/Integer;
      Exception table:
        from    to  target  type
          16    17      18  Class javax.management.relation.RoleInfoNotFoundException
    Exceptions:
      throws java.lang.IllegalArgumentException, javax.management.relation.RelationTypeNotFoundException
    MethodParameters:
                  Name  Flags
      role              
      relationTypeName  
      initFlag          

  public void sendRelationCreationNotification(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=3, args_size=2
        start local 0 // javax.management.relation.RelationService this
        start local 1 // java.lang.String relationId
         0: .line 1065
            aload 1 /* relationId */
            ifnonnull 3
         1: .line 1066
            ldc "Invalid parameter."
            astore 2 /* excMsg */
        start local 2 // java.lang.String excMsg
         2: .line 1067
            new java.lang.IllegalArgumentException
            dup
            aload 2 /* excMsg */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.lang.String excMsg
         3: .line 1070
      StackMap locals:
      StackMap stack:
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
         4: .line 1071
            ldc "sendRelationCreationNotification"
            aload 1 /* relationId */
         5: .line 1070
            invokevirtual java.util.logging.Logger.entering:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
         6: .line 1074
            new java.lang.StringBuilder
            dup
            ldc "Creation of relation "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            astore 2 /* ntfMsg */
        start local 2 // java.lang.StringBuilder ntfMsg
         7: .line 1075
            aload 2 /* ntfMsg */
            aload 1 /* relationId */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         8: .line 1078
            aload 0 /* this */
            iconst_1
         9: .line 1079
            aload 2 /* ntfMsg */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        10: .line 1080
            aload 1 /* relationId */
        11: .line 1081
            aconst_null
        12: .line 1082
            aconst_null
        13: .line 1083
            aconst_null
        14: .line 1084
            aconst_null
        15: .line 1078
            invokevirtual javax.management.relation.RelationService.sendNotificationInt:(ILjava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/util/List;Ljava/util/List;)V
        16: .line 1086
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
        17: .line 1087
            ldc "sendRelationCreationNotification"
        18: .line 1086
            invokevirtual java.util.logging.Logger.exiting:(Ljava/lang/String;Ljava/lang/String;)V
        19: .line 1088
            return
        end local 2 // java.lang.StringBuilder ntfMsg
        end local 1 // java.lang.String relationId
        end local 0 // javax.management.relation.RelationService this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   20     0        this  Ljavax/management/relation/RelationService;
            0   20     1  relationId  Ljava/lang/String;
            2    3     2      excMsg  Ljava/lang/String;
            7   20     2      ntfMsg  Ljava/lang/StringBuilder;
    Exceptions:
      throws java.lang.IllegalArgumentException, javax.management.relation.RelationNotFoundException
    MethodParameters:
            Name  Flags
      relationId  

  public void sendRoleUpdateNotification(java.lang.String, javax.management.relation.Role, java.util.List<javax.management.ObjectName>);
    descriptor: (Ljava/lang/String;Ljavax/management/relation/Role;Ljava/util/List;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=9, args_size=4
        start local 0 // javax.management.relation.RelationService this
        start local 1 // java.lang.String relationId
        start local 2 // javax.management.relation.Role newRole
        start local 3 // java.util.List oldValue
         0: .line 1119
            aload 1 /* relationId */
            ifnull 3
         1: .line 1120
            aload 2 /* newRole */
            ifnull 3
         2: .line 1121
            aload 3 /* oldValue */
            ifnonnull 5
         3: .line 1122
      StackMap locals:
      StackMap stack:
            ldc "Invalid parameter."
            astore 4 /* excMsg */
        start local 4 // java.lang.String excMsg
         4: .line 1123
            new java.lang.IllegalArgumentException
            dup
            aload 4 /* excMsg */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // java.lang.String excMsg
         5: .line 1126
      StackMap locals:
      StackMap stack:
            aload 3 /* oldValue */
            instanceof java.util.ArrayList
            ifne 7
         6: .line 1127
            new java.util.ArrayList
            dup
            aload 3 /* oldValue */
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            astore 3 /* oldValue */
         7: .line 1129
      StackMap locals:
      StackMap stack:
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
         8: .line 1130
            ldc "sendRoleUpdateNotification"
         9: .line 1131
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* relationId */
            aastore
            dup
            iconst_1
            aload 2 /* newRole */
            aastore
            dup
            iconst_2
            aload 3 /* oldValue */
            aastore
        10: .line 1129
            invokevirtual java.util.logging.Logger.entering:(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
        11: .line 1133
            aload 2 /* newRole */
            invokevirtual javax.management.relation.Role.getRoleName:()Ljava/lang/String;
            astore 4 /* roleName */
        start local 4 // java.lang.String roleName
        12: .line 1134
            aload 2 /* newRole */
            invokevirtual javax.management.relation.Role.getRoleValue:()Ljava/util/List;
            astore 5 /* newRoleVal */
        start local 5 // java.util.List newRoleVal
        13: .line 1137
            aload 5 /* newRoleVal */
            invokestatic javax.management.relation.Role.roleValueToString:(Ljava/util/List;)Ljava/lang/String;
            astore 6 /* newRoleValString */
        start local 6 // java.lang.String newRoleValString
        14: .line 1138
            aload 3 /* oldValue */
            invokestatic javax.management.relation.Role.roleValueToString:(Ljava/util/List;)Ljava/lang/String;
            astore 7 /* oldRoleValString */
        start local 7 // java.lang.String oldRoleValString
        15: .line 1139
            new java.lang.StringBuilder
            dup
            ldc "Value of role "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            astore 8 /* ntfMsg */
        start local 8 // java.lang.StringBuilder ntfMsg
        16: .line 1140
            aload 8 /* ntfMsg */
            aload 4 /* roleName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        17: .line 1141
            aload 8 /* ntfMsg */
            ldc " has changed\nOld value:\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        18: .line 1142
            aload 8 /* ntfMsg */
            aload 7 /* oldRoleValString */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        19: .line 1143
            aload 8 /* ntfMsg */
            ldc "\nNew value:\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        20: .line 1144
            aload 8 /* ntfMsg */
            aload 6 /* newRoleValString */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        21: .line 1147
            aload 0 /* this */
            iconst_2
        22: .line 1148
            aload 8 /* ntfMsg */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        23: .line 1149
            aload 1 /* relationId */
        24: .line 1150
            aconst_null
        25: .line 1151
            aload 4 /* roleName */
        26: .line 1152
            aload 5 /* newRoleVal */
        27: .line 1153
            aload 3 /* oldValue */
        28: .line 1147
            invokevirtual javax.management.relation.RelationService.sendNotificationInt:(ILjava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/util/List;Ljava/util/List;)V
        29: .line 1155
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
        30: .line 1156
            ldc "sendRoleUpdateNotification"
        31: .line 1155
            invokevirtual java.util.logging.Logger.exiting:(Ljava/lang/String;Ljava/lang/String;)V
        32: .line 1157
            return
        end local 8 // java.lang.StringBuilder ntfMsg
        end local 7 // java.lang.String oldRoleValString
        end local 6 // java.lang.String newRoleValString
        end local 5 // java.util.List newRoleVal
        end local 4 // java.lang.String roleName
        end local 3 // java.util.List oldValue
        end local 2 // javax.management.relation.Role newRole
        end local 1 // java.lang.String relationId
        end local 0 // javax.management.relation.RelationService this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   33     0              this  Ljavax/management/relation/RelationService;
            0   33     1        relationId  Ljava/lang/String;
            0   33     2           newRole  Ljavax/management/relation/Role;
            0   33     3          oldValue  Ljava/util/List<Ljavax/management/ObjectName;>;
            4    5     4            excMsg  Ljava/lang/String;
           12   33     4          roleName  Ljava/lang/String;
           13   33     5        newRoleVal  Ljava/util/List<Ljavax/management/ObjectName;>;
           14   33     6  newRoleValString  Ljava/lang/String;
           15   33     7  oldRoleValString  Ljava/lang/String;
           16   33     8            ntfMsg  Ljava/lang/StringBuilder;
    Exceptions:
      throws java.lang.IllegalArgumentException, javax.management.relation.RelationNotFoundException
    Signature: (Ljava/lang/String;Ljavax/management/relation/Role;Ljava/util/List<Ljavax/management/ObjectName;>;)V
    MethodParameters:
            Name  Flags
      relationId  
      newRole     
      oldValue    

  public void sendRelationRemovalNotification(java.lang.String, java.util.List<javax.management.ObjectName>);
    descriptor: (Ljava/lang/String;Ljava/util/List;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=4, args_size=3
        start local 0 // javax.management.relation.RelationService this
        start local 1 // java.lang.String relationId
        start local 2 // java.util.List unregMBeanList
         0: .line 1182
            aload 1 /* relationId */
            ifnonnull 3
         1: .line 1183
            ldc "Invalid parameter"
            astore 3 /* excMsg */
        start local 3 // java.lang.String excMsg
         2: .line 1184
            new java.lang.IllegalArgumentException
            dup
            aload 3 /* excMsg */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // java.lang.String excMsg
         3: .line 1187
      StackMap locals:
      StackMap stack:
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
         4: .line 1188
            ldc "sendRelationRemovalNotification"
         5: .line 1189
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* relationId */
            aastore
            dup
            iconst_1
            aload 2 /* unregMBeanList */
            aastore
         6: .line 1187
            invokevirtual java.util.logging.Logger.entering:(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
         7: .line 1192
            aload 0 /* this */
            iconst_3
         8: .line 1193
            new java.lang.StringBuilder
            dup
            ldc "Removal of relation "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* relationId */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         9: .line 1194
            aload 1 /* relationId */
        10: .line 1195
            aload 2 /* unregMBeanList */
        11: .line 1196
            aconst_null
        12: .line 1197
            aconst_null
        13: .line 1198
            aconst_null
        14: .line 1192
            invokevirtual javax.management.relation.RelationService.sendNotificationInt:(ILjava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/util/List;Ljava/util/List;)V
        15: .line 1201
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
        16: .line 1202
            ldc "sendRelationRemovalNotification"
        17: .line 1201
            invokevirtual java.util.logging.Logger.exiting:(Ljava/lang/String;Ljava/lang/String;)V
        18: .line 1203
            return
        end local 2 // java.util.List unregMBeanList
        end local 1 // java.lang.String relationId
        end local 0 // javax.management.relation.RelationService this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   19     0            this  Ljavax/management/relation/RelationService;
            0   19     1      relationId  Ljava/lang/String;
            0   19     2  unregMBeanList  Ljava/util/List<Ljavax/management/ObjectName;>;
            2    3     3          excMsg  Ljava/lang/String;
    Exceptions:
      throws java.lang.IllegalArgumentException, javax.management.relation.RelationNotFoundException
    Signature: (Ljava/lang/String;Ljava/util/List<Ljavax/management/ObjectName;>;)V
    MethodParameters:
                Name  Flags
      relationId      
      unregMBeanList  

  public void updateRoleMap(java.lang.String, javax.management.relation.Role, java.util.List<javax.management.ObjectName>);
    descriptor: (Ljava/lang/String;Ljavax/management/relation/Role;Ljava/util/List;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=12, args_size=4
        start local 0 // javax.management.relation.RelationService this
        start local 1 // java.lang.String relationId
        start local 2 // javax.management.relation.Role newRole
        start local 3 // java.util.List oldValue
         0: .line 1234
            aload 1 /* relationId */
            ifnull 3
         1: .line 1235
            aload 2 /* newRole */
            ifnull 3
         2: .line 1236
            aload 3 /* oldValue */
            ifnonnull 5
         3: .line 1237
      StackMap locals:
      StackMap stack:
            ldc "Invalid parameter."
            astore 4 /* excMsg */
        start local 4 // java.lang.String excMsg
         4: .line 1238
            new java.lang.IllegalArgumentException
            dup
            aload 4 /* excMsg */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // java.lang.String excMsg
         5: .line 1241
      StackMap locals:
      StackMap stack:
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
         6: .line 1242
            ldc "updateRoleMap"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* relationId */
            aastore
            dup
            iconst_1
            aload 2 /* newRole */
            aastore
            dup
            iconst_2
            aload 3 /* oldValue */
            aastore
         7: .line 1241
            invokevirtual java.util.logging.Logger.entering:(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
         8: .line 1245
            aload 0 /* this */
            invokevirtual javax.management.relation.RelationService.isActive:()V
         9: .line 1249
            aload 0 /* this */
            aload 1 /* relationId */
            invokevirtual javax.management.relation.RelationService.getRelation:(Ljava/lang/String;)Ljava/lang/Object;
            pop
        10: .line 1251
            aload 2 /* newRole */
            invokevirtual javax.management.relation.Role.getRoleName:()Ljava/lang/String;
            astore 4 /* roleName */
        start local 4 // java.lang.String roleName
        11: .line 1252
            aload 2 /* newRole */
            invokevirtual javax.management.relation.Role.getRoleValue:()Ljava/util/List;
            astore 5 /* newRoleValue */
        start local 5 // java.util.List newRoleValue
        12: .line 1256
            new java.util.ArrayList
            dup
            aload 3 /* oldValue */
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
        13: .line 1255
            astore 6 /* oldRoleValue */
        start local 6 // java.util.List oldRoleValue
        14: .line 1259
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 7 /* newRefList */
        start local 7 // java.util.List newRefList
        15: .line 1261
            aload 5 /* newRoleValue */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 9
            goto 27
      StackMap locals: javax.management.relation.RelationService java.lang.String javax.management.relation.Role java.util.List java.lang.String java.util.List java.util.List java.util.List top java.util.Iterator
      StackMap stack:
        16: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.management.ObjectName
            astore 8 /* currObjName */
        start local 8 // javax.management.ObjectName currObjName
        17: .line 1267
            aload 6 /* oldRoleValue */
            aload 8 /* currObjName */
            invokeinterface java.util.List.indexOf:(Ljava/lang/Object;)I
            istore 10 /* currObjNamePos */
        start local 10 // int currObjNamePos
        18: .line 1269
            iload 10 /* currObjNamePos */
            iconst_m1
            if_icmpne 26
        19: .line 1275
            aload 0 /* this */
            aload 8 /* currObjName */
        20: .line 1276
            aload 1 /* relationId */
        21: .line 1277
            aload 4 /* roleName */
        22: .line 1275
            invokevirtual javax.management.relation.RelationService.addNewMBeanReference:(Ljavax/management/ObjectName;Ljava/lang/String;Ljava/lang/String;)Z
            istore 11 /* isNewFlag */
        start local 11 // boolean isNewFlag
        23: .line 1279
            iload 11 /* isNewFlag */
            ifeq 27
        24: .line 1281
            aload 7 /* newRefList */
            aload 8 /* currObjName */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 11 // boolean isNewFlag
        25: .line 1284
            goto 27
        26: .line 1289
      StackMap locals: javax.management.relation.RelationService java.lang.String javax.management.relation.Role java.util.List java.lang.String java.util.List java.util.List java.util.List javax.management.ObjectName java.util.Iterator int
      StackMap stack:
            aload 6 /* oldRoleValue */
            iload 10 /* currObjNamePos */
            invokeinterface java.util.List.remove:(I)Ljava/lang/Object;
            pop
        end local 10 // int currObjNamePos
        end local 8 // javax.management.ObjectName currObjName
        27: .line 1261
      StackMap locals: javax.management.relation.RelationService java.lang.String javax.management.relation.Role java.util.List java.lang.String java.util.List java.util.List java.util.List top java.util.Iterator
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 16
        28: .line 1294
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 8 /* obsRefList */
        start local 8 // java.util.List obsRefList
        29: .line 1298
            aload 6 /* oldRoleValue */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 10
            goto 38
      StackMap locals: javax.management.relation.RelationService java.lang.String javax.management.relation.Role java.util.List java.lang.String java.util.List java.util.List java.util.List java.util.List top java.util.Iterator
      StackMap stack:
        30: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.management.ObjectName
            astore 9 /* currObjName */
        start local 9 // javax.management.ObjectName currObjName
        31: .line 1302
            aload 0 /* this */
            aload 9 /* currObjName */
        32: .line 1303
            aload 1 /* relationId */
        33: .line 1304
            aload 4 /* roleName */
        34: .line 1305
            iconst_0
        35: .line 1302
            invokevirtual javax.management.relation.RelationService.removeMBeanReference:(Ljavax/management/ObjectName;Ljava/lang/String;Ljava/lang/String;Z)Z
            istore 11 /* noLongerRefFlag */
        start local 11 // boolean noLongerRefFlag
        36: .line 1307
            iload 11 /* noLongerRefFlag */
            ifeq 38
        37: .line 1309
            aload 8 /* obsRefList */
            aload 9 /* currObjName */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 11 // boolean noLongerRefFlag
        end local 9 // javax.management.ObjectName currObjName
        38: .line 1298
      StackMap locals:
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 30
        39: .line 1316
            aload 0 /* this */
            aload 7 /* newRefList */
            aload 8 /* obsRefList */
            invokevirtual javax.management.relation.RelationService.updateUnregistrationListener:(Ljava/util/List;Ljava/util/List;)V
        40: .line 1318
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
        41: .line 1319
            ldc "updateRoleMap"
        42: .line 1318
            invokevirtual java.util.logging.Logger.exiting:(Ljava/lang/String;Ljava/lang/String;)V
        43: .line 1320
            return
        end local 8 // java.util.List obsRefList
        end local 7 // java.util.List newRefList
        end local 6 // java.util.List oldRoleValue
        end local 5 // java.util.List newRoleValue
        end local 4 // java.lang.String roleName
        end local 3 // java.util.List oldValue
        end local 2 // javax.management.relation.Role newRole
        end local 1 // java.lang.String relationId
        end local 0 // javax.management.relation.RelationService this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   44     0             this  Ljavax/management/relation/RelationService;
            0   44     1       relationId  Ljava/lang/String;
            0   44     2          newRole  Ljavax/management/relation/Role;
            0   44     3         oldValue  Ljava/util/List<Ljavax/management/ObjectName;>;
            4    5     4           excMsg  Ljava/lang/String;
           11   44     4         roleName  Ljava/lang/String;
           12   44     5     newRoleValue  Ljava/util/List<Ljavax/management/ObjectName;>;
           14   44     6     oldRoleValue  Ljava/util/List<Ljavax/management/ObjectName;>;
           15   44     7       newRefList  Ljava/util/List<Ljavax/management/ObjectName;>;
           17   27     8      currObjName  Ljavax/management/ObjectName;
           18   27    10   currObjNamePos  I
           23   25    11        isNewFlag  Z
           29   44     8       obsRefList  Ljava/util/List<Ljavax/management/ObjectName;>;
           31   38     9      currObjName  Ljavax/management/ObjectName;
           36   38    11  noLongerRefFlag  Z
    Exceptions:
      throws java.lang.IllegalArgumentException, javax.management.relation.RelationServiceNotRegisteredException, javax.management.relation.RelationNotFoundException
    Signature: (Ljava/lang/String;Ljavax/management/relation/Role;Ljava/util/List<Ljavax/management/ObjectName;>;)V
    MethodParameters:
            Name  Flags
      relationId  
      newRole     
      oldValue    

  public void removeRelation(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=9, args_size=2
        start local 0 // javax.management.relation.RelationService this
        start local 1 // java.lang.String relationId
         0: .line 1346
            aload 0 /* this */
            invokevirtual javax.management.relation.RelationService.isActive:()V
         1: .line 1348
            aload 1 /* relationId */
            ifnonnull 4
         2: .line 1349
            ldc "Invalid parameter."
            astore 2 /* excMsg */
        start local 2 // java.lang.String excMsg
         3: .line 1350
            new java.lang.IllegalArgumentException
            dup
            aload 2 /* excMsg */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.lang.String excMsg
         4: .line 1353
      StackMap locals:
      StackMap stack:
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
         5: .line 1354
            ldc "removeRelation"
            aload 1 /* relationId */
         6: .line 1353
            invokevirtual java.util.logging.Logger.entering:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
         7: .line 1358
            aload 0 /* this */
            aload 1 /* relationId */
            invokevirtual javax.management.relation.RelationService.getRelation:(Ljava/lang/String;)Ljava/lang/Object;
            astore 2 /* result */
        start local 2 // java.lang.Object result
         8: .line 1361
            aload 2 /* result */
            instanceof javax.management.ObjectName
            ifeq 12
         9: .line 1362
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* obsRefList */
        start local 3 // java.util.List obsRefList
        10: .line 1363
            aload 3 /* obsRefList */
            aload 2 /* result */
            checkcast javax.management.ObjectName
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        11: .line 1365
            aload 0 /* this */
            aconst_null
            aload 3 /* obsRefList */
            invokevirtual javax.management.relation.RelationService.updateUnregistrationListener:(Ljava/util/List;Ljava/util/List;)V
        end local 3 // java.util.List obsRefList
        12: .line 1379
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            aload 1 /* relationId */
            aconst_null
            invokevirtual javax.management.relation.RelationService.sendRelationRemovalNotification:(Ljava/lang/String;Ljava/util/List;)V
        13: .line 1391
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* refMBeanList */
        start local 3 // java.util.List refMBeanList
        14: .line 1394
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 4 /* nonRefObjNameList */
        start local 4 // java.util.List nonRefObjNameList
        15: .line 1396
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myRefedMBeanObjName2RelIdsMap:Ljava/util/Map;
            dup
            astore 5
            monitorenter
        16: .line 1399
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myRefedMBeanObjName2RelIdsMap:Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 7
            goto 25
      StackMap locals: javax.management.relation.RelationService java.lang.String java.lang.Object java.util.List java.util.List java.util.Map top java.util.Iterator
      StackMap stack:
        17: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.management.ObjectName
            astore 6 /* currRefObjName */
        start local 6 // javax.management.ObjectName currRefObjName
        18: .line 1403
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myRefedMBeanObjName2RelIdsMap:Ljava/util/Map;
            aload 6 /* currRefObjName */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Map
        19: .line 1402
            astore 8 /* relIdMap */
        start local 8 // java.util.Map relIdMap
        20: .line 1405
            aload 8 /* relIdMap */
            aload 1 /* relationId */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 23
        21: .line 1406
            aload 8 /* relIdMap */
            aload 1 /* relationId */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        22: .line 1407
            aload 3 /* refMBeanList */
            aload 6 /* currRefObjName */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        23: .line 1410
      StackMap locals: javax.management.relation.RelationService java.lang.String java.lang.Object java.util.List java.util.List java.util.Map javax.management.ObjectName java.util.Iterator java.util.Map
      StackMap stack:
            aload 8 /* relIdMap */
            invokeinterface java.util.Map.isEmpty:()Z
            ifeq 25
        24: .line 1414
            aload 4 /* nonRefObjNameList */
            aload 6 /* currRefObjName */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 8 // java.util.Map relIdMap
        end local 6 // javax.management.ObjectName currRefObjName
        25: .line 1398
      StackMap locals: javax.management.relation.RelationService java.lang.String java.lang.Object java.util.List java.util.List java.util.Map top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 17
        26: .line 1420
            aload 4 /* nonRefObjNameList */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 7
            goto 29
      StackMap locals:
      StackMap stack:
        27: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.management.ObjectName
            astore 6 /* currRefObjName */
        start local 6 // javax.management.ObjectName currRefObjName
        28: .line 1421
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myRefedMBeanObjName2RelIdsMap:Ljava/util/Map;
            aload 6 /* currRefObjName */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 6 // javax.management.ObjectName currRefObjName
        29: .line 1420
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 27
        30: .line 1396
            aload 5
            monitorexit
        31: goto 34
      StackMap locals: javax.management.relation.RelationService java.lang.String java.lang.Object java.util.List java.util.List java.util.Map
      StackMap stack: java.lang.Throwable
        32: aload 5
            monitorexit
        33: athrow
        34: .line 1426
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myRelId2ObjMap:Ljava/util/Map;
            dup
            astore 5
            monitorenter
        35: .line 1427
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myRelId2ObjMap:Ljava/util/Map;
            aload 1 /* relationId */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        36: .line 1426
            aload 5
            monitorexit
        37: goto 40
      StackMap locals: javax.management.relation.RelationService java.lang.String java.lang.Object java.util.List java.util.List java.util.Map
      StackMap stack: java.lang.Throwable
        38: aload 5
            monitorexit
        39: athrow
        40: .line 1430
      StackMap locals:
      StackMap stack:
            aload 2 /* result */
            instanceof javax.management.ObjectName
            ifeq 47
        41: .line 1432
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myRelMBeanObjName2RelIdMap:Ljava/util/Map;
            dup
            astore 5
            monitorenter
        42: .line 1433
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myRelMBeanObjName2RelIdMap:Ljava/util/Map;
            aload 2 /* result */
            checkcast javax.management.ObjectName
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        43: .line 1432
            aload 5
            monitorexit
        44: goto 47
      StackMap locals: javax.management.relation.RelationService java.lang.String java.lang.Object java.util.List java.util.List java.util.Map
      StackMap stack: java.lang.Throwable
        45: aload 5
            monitorexit
        46: athrow
        47: .line 1439
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 5 /* relTypeName */
        start local 5 // java.lang.String relTypeName
        48: .line 1440
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myRelId2RelTypeMap:Ljava/util/Map;
            dup
            astore 6
            monitorenter
        49: .line 1441
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myRelId2RelTypeMap:Ljava/util/Map;
            aload 1 /* relationId */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 5 /* relTypeName */
        50: .line 1442
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myRelId2RelTypeMap:Ljava/util/Map;
            aload 1 /* relationId */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        51: .line 1440
            aload 6
            monitorexit
        52: goto 55
      StackMap locals: javax.management.relation.RelationService java.lang.String java.lang.Object java.util.List java.util.List java.lang.String java.util.Map
      StackMap stack: java.lang.Throwable
        53: aload 6
            monitorexit
        54: athrow
        55: .line 1445
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myRelType2RelIdsMap:Ljava/util/Map;
            dup
            astore 6
            monitorenter
        56: .line 1446
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myRelType2RelIdsMap:Ljava/util/Map;
            aload 5 /* relTypeName */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.List
            astore 7 /* relIdList */
        start local 7 // java.util.List relIdList
        57: .line 1447
            aload 7 /* relIdList */
            ifnull 61
        58: .line 1449
            aload 7 /* relIdList */
            aload 1 /* relationId */
            invokeinterface java.util.List.remove:(Ljava/lang/Object;)Z
            pop
        59: .line 1450
            aload 7 /* relIdList */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 61
        60: .line 1452
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myRelType2RelIdsMap:Ljava/util/Map;
            aload 5 /* relTypeName */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 7 // java.util.List relIdList
        61: .line 1445
      StackMap locals: java.util.Map
      StackMap stack:
            aload 6
            monitorexit
        62: goto 65
      StackMap locals:
      StackMap stack: java.lang.Throwable
        63: aload 6
            monitorexit
        64: athrow
        65: .line 1457
      StackMap locals:
      StackMap stack:
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
        66: .line 1458
            ldc "removeRelation"
        67: .line 1457
            invokevirtual java.util.logging.Logger.exiting:(Ljava/lang/String;Ljava/lang/String;)V
        68: .line 1459
            return
        end local 5 // java.lang.String relTypeName
        end local 4 // java.util.List nonRefObjNameList
        end local 3 // java.util.List refMBeanList
        end local 2 // java.lang.Object result
        end local 1 // java.lang.String relationId
        end local 0 // javax.management.relation.RelationService this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   69     0               this  Ljavax/management/relation/RelationService;
            0   69     1         relationId  Ljava/lang/String;
            3    4     2             excMsg  Ljava/lang/String;
            8   69     2             result  Ljava/lang/Object;
           10   12     3         obsRefList  Ljava/util/List<Ljavax/management/ObjectName;>;
           14   69     3       refMBeanList  Ljava/util/List<Ljavax/management/ObjectName;>;
           15   69     4  nonRefObjNameList  Ljava/util/List<Ljavax/management/ObjectName;>;
           18   25     6     currRefObjName  Ljavax/management/ObjectName;
           20   25     8           relIdMap  Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
           28   29     6     currRefObjName  Ljavax/management/ObjectName;
           48   69     5        relTypeName  Ljava/lang/String;
           57   61     7          relIdList  Ljava/util/List<Ljava/lang/String;>;
      Exception table:
        from    to  target  type
          16    31      32  any
          32    33      32  any
          35    37      38  any
          38    39      38  any
          42    44      45  any
          45    46      45  any
          49    52      53  any
          53    54      53  any
          56    62      63  any
          63    64      63  any
    Exceptions:
      throws javax.management.relation.RelationServiceNotRegisteredException, java.lang.IllegalArgumentException, javax.management.relation.RelationNotFoundException
    MethodParameters:
            Name  Flags
      relationId  

  public void purgeRelations();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=13, args_size=1
        start local 0 // javax.management.relation.RelationService this
         0: .line 1491
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
         1: .line 1492
            ldc "purgeRelations"
         2: .line 1491
            invokevirtual java.util.logging.Logger.entering:(Ljava/lang/String;Ljava/lang/String;)V
         3: .line 1495
            aload 0 /* this */
            invokevirtual javax.management.relation.RelationService.isActive:()V
         4: .line 1507
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myUnregNtfList:Ljava/util/List;
            dup
            astore 2
            monitorenter
         5: .line 1509
            new java.util.ArrayList
            dup
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myUnregNtfList:Ljava/util/List;
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
         6: .line 1508
            astore 1 /* localUnregNtfList */
        start local 1 // java.util.List localUnregNtfList
         7: .line 1511
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield javax.management.relation.RelationService.myUnregNtfList:Ljava/util/List;
         8: .line 1507
            aload 2
            monitorexit
         9: goto 12
        end local 1 // java.util.List localUnregNtfList
      StackMap locals: javax.management.relation.RelationService top java.util.List
      StackMap stack: java.lang.Throwable
        10: aload 2
            monitorexit
        11: athrow
        start local 1 // java.util.List localUnregNtfList
        12: .line 1521
      StackMap locals: javax.management.relation.RelationService java.util.List
      StackMap stack:
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* obsRefList */
        start local 2 // java.util.List obsRefList
        13: .line 1525
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
        14: .line 1524
            astore 3 /* localMBean2RelIdMap */
        start local 3 // java.util.Map localMBean2RelIdMap
        15: .line 1527
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myRefedMBeanObjName2RelIdsMap:Ljava/util/Map;
            dup
            astore 4
            monitorenter
        16: .line 1528
            aload 1 /* localUnregNtfList */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 24
      StackMap locals: javax.management.relation.RelationService java.util.List java.util.List java.util.Map java.util.Map top java.util.Iterator
      StackMap stack:
        17: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.management.MBeanServerNotification
            astore 5 /* currNtf */
        start local 5 // javax.management.MBeanServerNotification currNtf
        18: .line 1530
            aload 5 /* currNtf */
            invokevirtual javax.management.MBeanServerNotification.getMBeanName:()Ljavax/management/ObjectName;
            astore 7 /* unregMBeanName */
        start local 7 // javax.management.ObjectName unregMBeanName
        19: .line 1534
            aload 2 /* obsRefList */
            aload 7 /* unregMBeanName */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        20: .line 1538
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myRefedMBeanObjName2RelIdsMap:Ljava/util/Map;
            aload 7 /* unregMBeanName */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Map
        21: .line 1537
            astore 8 /* relIdMap */
        start local 8 // java.util.Map relIdMap
        22: .line 1539
            aload 3 /* localMBean2RelIdMap */
            aload 7 /* unregMBeanName */
            aload 8 /* relIdMap */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        23: .line 1541
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myRefedMBeanObjName2RelIdsMap:Ljava/util/Map;
            aload 7 /* unregMBeanName */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 8 // java.util.Map relIdMap
        end local 7 // javax.management.ObjectName unregMBeanName
        end local 5 // javax.management.MBeanServerNotification currNtf
        24: .line 1528
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 17
        25: .line 1527
            aload 4
            monitorexit
        26: goto 29
      StackMap locals: javax.management.relation.RelationService java.util.List java.util.List java.util.Map java.util.Map
      StackMap stack: java.lang.Throwable
        27: aload 4
            monitorexit
        28: athrow
        29: .line 1547
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            aload 2 /* obsRefList */
            invokevirtual javax.management.relation.RelationService.updateUnregistrationListener:(Ljava/util/List;Ljava/util/List;)V
        30: .line 1549
            aload 1 /* localUnregNtfList */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 49
      StackMap locals: javax.management.relation.RelationService java.util.List java.util.List java.util.Map top java.util.Iterator
      StackMap stack:
        31: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.management.MBeanServerNotification
            astore 4 /* currNtf */
        start local 4 // javax.management.MBeanServerNotification currNtf
        32: .line 1551
            aload 4 /* currNtf */
            invokevirtual javax.management.MBeanServerNotification.getMBeanName:()Ljavax/management/ObjectName;
            astore 6 /* unregMBeanName */
        start local 6 // javax.management.ObjectName unregMBeanName
        33: .line 1555
            aload 3 /* localMBean2RelIdMap */
            aload 6 /* unregMBeanName */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Map
        34: .line 1554
            astore 7 /* localRelIdMap */
        start local 7 // java.util.Map localRelIdMap
        35: .line 1560
            aload 7 /* localRelIdMap */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 9
            goto 48
      StackMap locals: javax.management.relation.RelationService java.util.List java.util.List java.util.Map javax.management.MBeanServerNotification java.util.Iterator javax.management.ObjectName java.util.Map top java.util.Iterator
      StackMap stack:
        36: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 8 /* currRel */
        start local 8 // java.util.Map$Entry currRel
        37: .line 1561
            aload 8 /* currRel */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 10 /* currRelId */
        start local 10 // java.lang.String currRelId
        38: .line 1564
            aload 8 /* currRel */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.util.List
            astore 11 /* localRoleNameList */
        start local 11 // java.util.List localRoleNameList
        39: .line 1578
            aload 0 /* this */
            aload 10 /* currRelId */
        40: .line 1579
            aload 6 /* unregMBeanName */
        41: .line 1580
            aload 11 /* localRoleNameList */
        42: .line 1578
            invokevirtual javax.management.relation.RelationService.handleReferenceUnregistration:(Ljava/lang/String;Ljavax/management/ObjectName;Ljava/util/List;)V
        43: .line 1581
            goto 48
      StackMap locals: javax.management.relation.RelationService java.util.List java.util.List java.util.Map javax.management.MBeanServerNotification java.util.Iterator javax.management.ObjectName java.util.Map java.util.Map$Entry java.util.Iterator java.lang.String java.util.List
      StackMap stack: javax.management.relation.RelationNotFoundException
        44: astore 12 /* exc1 */
        start local 12 // javax.management.relation.RelationNotFoundException exc1
        45: .line 1582
            new java.lang.RuntimeException
            dup
            aload 12 /* exc1 */
            invokevirtual javax.management.relation.RelationNotFoundException.getMessage:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 12 // javax.management.relation.RelationNotFoundException exc1
        46: .line 1583
      StackMap locals:
      StackMap stack: javax.management.relation.RoleNotFoundException
            astore 12 /* exc2 */
        start local 12 // javax.management.relation.RoleNotFoundException exc2
        47: .line 1584
            new java.lang.RuntimeException
            dup
            aload 12 /* exc2 */
            invokevirtual javax.management.relation.RoleNotFoundException.getMessage:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 12 // javax.management.relation.RoleNotFoundException exc2
        end local 11 // java.util.List localRoleNameList
        end local 10 // java.lang.String currRelId
        end local 8 // java.util.Map$Entry currRel
        48: .line 1559
      StackMap locals: javax.management.relation.RelationService java.util.List java.util.List java.util.Map javax.management.MBeanServerNotification java.util.Iterator javax.management.ObjectName java.util.Map top java.util.Iterator
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 36
        end local 7 // java.util.Map localRelIdMap
        end local 6 // javax.management.ObjectName unregMBeanName
        end local 4 // javax.management.MBeanServerNotification currNtf
        49: .line 1549
      StackMap locals: javax.management.relation.RelationService java.util.List java.util.List java.util.Map top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 31
        50: .line 1589
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
        51: .line 1590
            ldc "purgeRelations"
        52: .line 1589
            invokevirtual java.util.logging.Logger.exiting:(Ljava/lang/String;Ljava/lang/String;)V
        53: .line 1591
            return
        end local 3 // java.util.Map localMBean2RelIdMap
        end local 2 // java.util.List obsRefList
        end local 1 // java.util.List localUnregNtfList
        end local 0 // javax.management.relation.RelationService this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   54     0                 this  Ljavax/management/relation/RelationService;
            7   10     1    localUnregNtfList  Ljava/util/List<Ljavax/management/MBeanServerNotification;>;
           12   54     1    localUnregNtfList  Ljava/util/List<Ljavax/management/MBeanServerNotification;>;
           13   54     2           obsRefList  Ljava/util/List<Ljavax/management/ObjectName;>;
           15   54     3  localMBean2RelIdMap  Ljava/util/Map<Ljavax/management/ObjectName;Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;>;
           18   24     5              currNtf  Ljavax/management/MBeanServerNotification;
           19   24     7       unregMBeanName  Ljavax/management/ObjectName;
           22   24     8             relIdMap  Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
           32   49     4              currNtf  Ljavax/management/MBeanServerNotification;
           33   49     6       unregMBeanName  Ljavax/management/ObjectName;
           35   49     7        localRelIdMap  Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
           37   48     8              currRel  Ljava/util/Map$Entry<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
           38   48    10            currRelId  Ljava/lang/String;
           39   48    11    localRoleNameList  Ljava/util/List<Ljava/lang/String;>;
           45   46    12                 exc1  Ljavax/management/relation/RelationNotFoundException;
           47   48    12                 exc2  Ljavax/management/relation/RoleNotFoundException;
      Exception table:
        from    to  target  type
           5     9      10  any
          10    11      10  any
          16    26      27  any
          27    28      27  any
          39    43      44  Class javax.management.relation.RelationNotFoundException
          39    43      46  Class javax.management.relation.RoleNotFoundException
    Exceptions:
      throws javax.management.relation.RelationServiceNotRegisteredException

  public java.util.Map<java.lang.String, java.util.List<java.lang.String>> findReferencingRelations(javax.management.ObjectName, java.lang.String, java.lang.String);
    descriptor: (Ljavax/management/ObjectName;Ljava/lang/String;Ljava/lang/String;)Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=13, args_size=4
        start local 0 // javax.management.relation.RelationService this
        start local 1 // javax.management.ObjectName mbeanName
        start local 2 // java.lang.String relationTypeName
        start local 3 // java.lang.String roleName
         0: .line 1620
            aload 1 /* mbeanName */
            ifnonnull 3
         1: .line 1621
            ldc "Invalid parameter."
            astore 4 /* excMsg */
        start local 4 // java.lang.String excMsg
         2: .line 1622
            new java.lang.IllegalArgumentException
            dup
            aload 4 /* excMsg */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // java.lang.String excMsg
         3: .line 1625
      StackMap locals:
      StackMap stack:
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
         4: .line 1626
            ldc "findReferencingRelations"
         5: .line 1627
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* mbeanName */
            aastore
            dup
            iconst_1
            aload 2 /* relationTypeName */
            aastore
            dup
            iconst_2
            aload 3 /* roleName */
            aastore
         6: .line 1625
            invokevirtual java.util.logging.Logger.entering:(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
         7: .line 1629
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 4 /* result */
        start local 4 // java.util.Map result
         8: .line 1631
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myRefedMBeanObjName2RelIdsMap:Ljava/util/Map;
            dup
            astore 5
            monitorenter
         9: .line 1635
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myRefedMBeanObjName2RelIdsMap:Ljava/util/Map;
            aload 1 /* mbeanName */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Map
        10: .line 1634
            astore 6 /* relId2RoleNamesMap */
        start local 6 // java.util.Map relId2RoleNamesMap
        11: .line 1637
            aload 6 /* relId2RoleNamesMap */
            ifnull 45
        12: .line 1640
            aload 6 /* relId2RoleNamesMap */
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            astore 7 /* allRelIdSet */
        start local 7 // java.util.Set allRelIdSet
        13: .line 1644
            aconst_null
            astore 8 /* relIdList */
        start local 8 // java.util.List relIdList
        14: .line 1645
            aload 2 /* relationTypeName */
            ifnonnull 17
        15: .line 1647
            new java.util.ArrayList
            dup
            aload 7 /* allRelIdSet */
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            astore 8 /* relIdList */
        16: .line 1649
            goto 31
        17: .line 1651
      StackMap locals: javax.management.relation.RelationService javax.management.ObjectName java.lang.String java.lang.String java.util.Map java.util.Map java.util.Map java.util.Set java.util.List
      StackMap stack:
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 8 /* relIdList */
        18: .line 1655
            aload 7 /* allRelIdSet */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 10
            goto 30
      StackMap locals: javax.management.relation.RelationService javax.management.ObjectName java.lang.String java.lang.String java.util.Map java.util.Map java.util.Map java.util.Set java.util.List top java.util.Iterator
      StackMap stack:
        19: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 9 /* currRelId */
        start local 9 // java.lang.String currRelId
        20: .line 1658
            aconst_null
            astore 11 /* currRelTypeName */
        start local 11 // java.lang.String currRelTypeName
        21: .line 1659
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myRelId2RelTypeMap:Ljava/util/Map;
            dup
            astore 12
            monitorenter
        22: .line 1661
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myRelId2RelTypeMap:Ljava/util/Map;
            aload 9 /* currRelId */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
        23: .line 1660
            astore 11 /* currRelTypeName */
        24: .line 1659
            aload 12
            monitorexit
        25: goto 28
      StackMap locals: javax.management.relation.RelationService javax.management.ObjectName java.lang.String java.lang.String java.util.Map java.util.Map java.util.Map java.util.Set java.util.List java.lang.String java.util.Iterator java.lang.String java.util.Map
      StackMap stack: java.lang.Throwable
        26: aload 12
            monitorexit
        27: athrow
        28: .line 1664
      StackMap locals:
      StackMap stack:
            aload 11 /* currRelTypeName */
            aload 2 /* relationTypeName */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 30
        29: .line 1666
            aload 8 /* relIdList */
            aload 9 /* currRelId */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 11 // java.lang.String currRelTypeName
        end local 9 // java.lang.String currRelId
        30: .line 1655
      StackMap locals: javax.management.relation.RelationService javax.management.ObjectName java.lang.String java.lang.String java.util.Map java.util.Map java.util.Map java.util.Set java.util.List top java.util.Iterator
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 19
        31: .line 1675
      StackMap locals: javax.management.relation.RelationService javax.management.ObjectName java.lang.String java.lang.String java.util.Map java.util.Map java.util.Map java.util.Set java.util.List
      StackMap stack:
            aload 8 /* relIdList */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 10
            goto 44
      StackMap locals: javax.management.relation.RelationService javax.management.ObjectName java.lang.String java.lang.String java.util.Map java.util.Map java.util.Map java.util.Set java.util.List top java.util.Iterator
      StackMap stack:
        32: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 9 /* currRelId */
        start local 9 // java.lang.String currRelId
        33: .line 1679
            aload 6 /* relId2RoleNamesMap */
            aload 9 /* currRelId */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.List
        34: .line 1678
            astore 11 /* currRoleNameList */
        start local 11 // java.util.List currRoleNameList
        35: .line 1681
            aload 3 /* roleName */
            ifnonnull 40
        36: .line 1685
            aload 4 /* result */
            aload 9 /* currRelId */
        37: .line 1686
            new java.util.ArrayList
            dup
            aload 11 /* currRoleNameList */
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
        38: .line 1685
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        39: .line 1688
            goto 44
      StackMap locals: javax.management.relation.RelationService javax.management.ObjectName java.lang.String java.lang.String java.util.Map java.util.Map java.util.Map java.util.Set java.util.List java.lang.String java.util.Iterator java.util.List
      StackMap stack:
        40: aload 11 /* currRoleNameList */
            aload 3 /* roleName */
            invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
            ifeq 44
        41: .line 1691
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 12 /* dummyList */
        start local 12 // java.util.List dummyList
        42: .line 1692
            aload 12 /* dummyList */
            aload 3 /* roleName */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        43: .line 1693
            aload 4 /* result */
            aload 9 /* currRelId */
            aload 12 /* dummyList */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 12 // java.util.List dummyList
        end local 11 // java.util.List currRoleNameList
        end local 9 // java.lang.String currRelId
        44: .line 1675
      StackMap locals: javax.management.relation.RelationService javax.management.ObjectName java.lang.String java.lang.String java.util.Map java.util.Map java.util.Map java.util.Set java.util.List top java.util.Iterator
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 32
        end local 8 // java.util.List relIdList
        end local 7 // java.util.Set allRelIdSet
        end local 6 // java.util.Map relId2RoleNamesMap
        45: .line 1631
      StackMap locals: javax.management.relation.RelationService javax.management.ObjectName java.lang.String java.lang.String java.util.Map java.util.Map
      StackMap stack:
            aload 5
            monitorexit
        46: goto 49
      StackMap locals:
      StackMap stack: java.lang.Throwable
        47: aload 5
            monitorexit
        48: athrow
        49: .line 1699
      StackMap locals:
      StackMap stack:
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
        50: .line 1700
            ldc "findReferencingRelations"
        51: .line 1699
            invokevirtual java.util.logging.Logger.exiting:(Ljava/lang/String;Ljava/lang/String;)V
        52: .line 1701
            aload 4 /* result */
            areturn
        end local 4 // java.util.Map result
        end local 3 // java.lang.String roleName
        end local 2 // java.lang.String relationTypeName
        end local 1 // javax.management.ObjectName mbeanName
        end local 0 // javax.management.relation.RelationService this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   53     0                this  Ljavax/management/relation/RelationService;
            0   53     1           mbeanName  Ljavax/management/ObjectName;
            0   53     2    relationTypeName  Ljava/lang/String;
            0   53     3            roleName  Ljava/lang/String;
            2    3     4              excMsg  Ljava/lang/String;
            8   53     4              result  Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
           11   45     6  relId2RoleNamesMap  Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
           13   45     7         allRelIdSet  Ljava/util/Set<Ljava/lang/String;>;
           14   45     8           relIdList  Ljava/util/List<Ljava/lang/String;>;
           20   30     9           currRelId  Ljava/lang/String;
           21   30    11     currRelTypeName  Ljava/lang/String;
           33   44     9           currRelId  Ljava/lang/String;
           35   44    11    currRoleNameList  Ljava/util/List<Ljava/lang/String;>;
           42   44    12           dummyList  Ljava/util/List<Ljava/lang/String;>;
      Exception table:
        from    to  target  type
          22    25      26  any
          26    27      26  any
           9    46      47  any
          47    48      47  any
    Exceptions:
      throws java.lang.IllegalArgumentException
    Signature: (Ljavax/management/ObjectName;Ljava/lang/String;Ljava/lang/String;)Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
    MethodParameters:
                  Name  Flags
      mbeanName         
      relationTypeName  
      roleName          

  public java.util.Map<javax.management.ObjectName, java.util.List<java.lang.String>> findAssociatedMBeans(javax.management.ObjectName, java.lang.String, java.lang.String);
    descriptor: (Ljavax/management/ObjectName;Ljava/lang/String;Ljava/lang/String;)Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=12, args_size=4
        start local 0 // javax.management.relation.RelationService this
        start local 1 // javax.management.ObjectName mbeanName
        start local 2 // java.lang.String relationTypeName
        start local 3 // java.lang.String roleName
         0: .line 1730
            aload 1 /* mbeanName */
            ifnonnull 3
         1: .line 1731
            ldc "Invalid parameter."
            astore 4 /* excMsg */
        start local 4 // java.lang.String excMsg
         2: .line 1732
            new java.lang.IllegalArgumentException
            dup
            aload 4 /* excMsg */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // java.lang.String excMsg
         3: .line 1735
      StackMap locals:
      StackMap stack:
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
         4: .line 1736
            ldc "findAssociatedMBeans"
         5: .line 1737
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* mbeanName */
            aastore
            dup
            iconst_1
            aload 2 /* relationTypeName */
            aastore
            dup
            iconst_2
            aload 3 /* roleName */
            aastore
         6: .line 1735
            invokevirtual java.util.logging.Logger.entering:(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
         7: .line 1742
            aload 0 /* this */
            aload 1 /* mbeanName */
         8: .line 1743
            aload 2 /* relationTypeName */
         9: .line 1744
            aload 3 /* roleName */
        10: .line 1742
            invokevirtual javax.management.relation.RelationService.findReferencingRelations:(Ljavax/management/ObjectName;Ljava/lang/String;Ljava/lang/String;)Ljava/util/Map;
        11: .line 1741
            astore 4 /* relId2RoleNamesMap */
        start local 4 // java.util.Map relId2RoleNamesMap
        12: .line 1747
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
        13: .line 1746
            astore 5 /* result */
        start local 5 // java.util.Map result
        14: .line 1749
            aload 4 /* relId2RoleNamesMap */
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 7
            goto 31
      StackMap locals: javax.management.relation.RelationService javax.management.ObjectName java.lang.String java.lang.String java.util.Map java.util.Map top java.util.Iterator
      StackMap stack:
        15: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 6 /* currRelId */
        start local 6 // java.lang.String currRelId
        16: .line 1757
            aload 0 /* this */
            aload 6 /* currRelId */
            invokevirtual javax.management.relation.RelationService.getReferencedMBeans:(Ljava/lang/String;)Ljava/util/Map;
            astore 8 /* objName2RoleNamesMap */
        start local 8 // java.util.Map objName2RoleNamesMap
        17: .line 1758
            goto 20
        end local 8 // java.util.Map objName2RoleNamesMap
      StackMap locals: javax.management.relation.RelationService javax.management.ObjectName java.lang.String java.lang.String java.util.Map java.util.Map java.lang.String java.util.Iterator
      StackMap stack: javax.management.relation.RelationNotFoundException
        18: astore 9 /* exc */
        start local 9 // javax.management.relation.RelationNotFoundException exc
        19: .line 1759
            new java.lang.RuntimeException
            dup
            aload 9 /* exc */
            invokevirtual javax.management.relation.RelationNotFoundException.getMessage:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 9 // javax.management.relation.RelationNotFoundException exc
        start local 8 // java.util.Map objName2RoleNamesMap
        20: .line 1764
      StackMap locals: java.util.Map
      StackMap stack:
            aload 8 /* objName2RoleNamesMap */
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 10
            goto 30
      StackMap locals: javax.management.relation.RelationService javax.management.ObjectName java.lang.String java.lang.String java.util.Map java.util.Map java.lang.String java.util.Iterator java.util.Map top java.util.Iterator
      StackMap stack:
        21: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.management.ObjectName
            astore 9 /* currObjName */
        start local 9 // javax.management.ObjectName currObjName
        22: .line 1766
            aload 9 /* currObjName */
            aload 1 /* mbeanName */
            invokevirtual javax.management.ObjectName.equals:(Ljava/lang/Object;)Z
            ifne 30
        23: .line 1770
            aload 5 /* result */
            aload 9 /* currObjName */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.List
            astore 11 /* currRelIdList */
        start local 11 // java.util.List currRelIdList
        24: .line 1771
            aload 11 /* currRelIdList */
            ifnonnull 29
        25: .line 1773
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 11 /* currRelIdList */
        26: .line 1774
            aload 11 /* currRelIdList */
            aload 6 /* currRelId */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        27: .line 1775
            aload 5 /* result */
            aload 9 /* currObjName */
            aload 11 /* currRelIdList */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        28: .line 1777
            goto 30
        29: .line 1778
      StackMap locals: javax.management.relation.RelationService javax.management.ObjectName java.lang.String java.lang.String java.util.Map java.util.Map java.lang.String java.util.Iterator java.util.Map javax.management.ObjectName java.util.Iterator java.util.List
      StackMap stack:
            aload 11 /* currRelIdList */
            aload 6 /* currRelId */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 11 // java.util.List currRelIdList
        end local 9 // javax.management.ObjectName currObjName
        30: .line 1764
      StackMap locals: javax.management.relation.RelationService javax.management.ObjectName java.lang.String java.lang.String java.util.Map java.util.Map java.lang.String java.util.Iterator java.util.Map top java.util.Iterator
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 21
        end local 8 // java.util.Map objName2RoleNamesMap
        end local 6 // java.lang.String currRelId
        31: .line 1749
      StackMap locals: javax.management.relation.RelationService javax.management.ObjectName java.lang.String java.lang.String java.util.Map java.util.Map top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 15
        32: .line 1784
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
        33: .line 1785
            ldc "findAssociatedMBeans"
        34: .line 1784
            invokevirtual java.util.logging.Logger.exiting:(Ljava/lang/String;Ljava/lang/String;)V
        35: .line 1786
            aload 5 /* result */
            areturn
        end local 5 // java.util.Map result
        end local 4 // java.util.Map relId2RoleNamesMap
        end local 3 // java.lang.String roleName
        end local 2 // java.lang.String relationTypeName
        end local 1 // javax.management.ObjectName mbeanName
        end local 0 // javax.management.relation.RelationService this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   36     0                  this  Ljavax/management/relation/RelationService;
            0   36     1             mbeanName  Ljavax/management/ObjectName;
            0   36     2      relationTypeName  Ljava/lang/String;
            0   36     3              roleName  Ljava/lang/String;
            2    3     4                excMsg  Ljava/lang/String;
           12   36     4    relId2RoleNamesMap  Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
           14   36     5                result  Ljava/util/Map<Ljavax/management/ObjectName;Ljava/util/List<Ljava/lang/String;>;>;
           16   31     6             currRelId  Ljava/lang/String;
           17   18     8  objName2RoleNamesMap  Ljava/util/Map<Ljavax/management/ObjectName;Ljava/util/List<Ljava/lang/String;>;>;
           20   31     8  objName2RoleNamesMap  Ljava/util/Map<Ljavax/management/ObjectName;Ljava/util/List<Ljava/lang/String;>;>;
           19   20     9                   exc  Ljavax/management/relation/RelationNotFoundException;
           22   30     9           currObjName  Ljavax/management/ObjectName;
           24   30    11         currRelIdList  Ljava/util/List<Ljava/lang/String;>;
      Exception table:
        from    to  target  type
          16    17      18  Class javax.management.relation.RelationNotFoundException
    Exceptions:
      throws java.lang.IllegalArgumentException
    Signature: (Ljavax/management/ObjectName;Ljava/lang/String;Ljava/lang/String;)Ljava/util/Map<Ljavax/management/ObjectName;Ljava/util/List<Ljava/lang/String;>;>;
    MethodParameters:
                  Name  Flags
      mbeanName         
      relationTypeName  
      roleName          

  public java.util.List<java.lang.String> findRelationsOfType(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // javax.management.relation.RelationService this
        start local 1 // java.lang.String relationTypeName
         0: .line 1804
            aload 1 /* relationTypeName */
            ifnonnull 3
         1: .line 1805
            ldc "Invalid parameter."
            astore 2 /* excMsg */
        start local 2 // java.lang.String excMsg
         2: .line 1806
            new java.lang.IllegalArgumentException
            dup
            aload 2 /* excMsg */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.lang.String excMsg
         3: .line 1809
      StackMap locals:
      StackMap stack:
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
         4: .line 1810
            ldc "findRelationsOfType"
         5: .line 1809
            invokevirtual java.util.logging.Logger.entering:(Ljava/lang/String;Ljava/lang/String;)V
         6: .line 1813
            aload 0 /* this */
            aload 1 /* relationTypeName */
            invokevirtual javax.management.relation.RelationService.getRelationType:(Ljava/lang/String;)Ljavax/management/relation/RelationType;
            pop
         7: .line 1816
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myRelType2RelIdsMap:Ljava/util/Map;
            dup
            astore 3
            monitorenter
         8: .line 1817
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myRelType2RelIdsMap:Ljava/util/Map;
            aload 1 /* relationTypeName */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.List
            astore 4 /* result1 */
        start local 4 // java.util.List result1
         9: .line 1818
            aload 4 /* result1 */
            ifnonnull 12
        10: .line 1819
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* result */
        start local 2 // java.util.List result
        11: goto 13
        end local 2 // java.util.List result
        12: .line 1821
      StackMap locals: javax.management.relation.RelationService java.lang.String top java.util.Map java.util.List
      StackMap stack:
            new java.util.ArrayList
            dup
            aload 4 /* result1 */
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            astore 2 /* result */
        end local 4 // java.util.List result1
        start local 2 // java.util.List result
        13: .line 1816
      StackMap locals: javax.management.relation.RelationService java.lang.String java.util.List java.util.Map
      StackMap stack:
            aload 3
            monitorexit
        14: goto 17
        end local 2 // java.util.List result
      StackMap locals: javax.management.relation.RelationService java.lang.String top java.util.Map
      StackMap stack: java.lang.Throwable
        15: aload 3
            monitorexit
        16: athrow
        start local 2 // java.util.List result
        17: .line 1824
      StackMap locals: javax.management.relation.RelationService java.lang.String java.util.List
      StackMap stack:
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
        18: .line 1825
            ldc "findRelationsOfType"
        19: .line 1824
            invokevirtual java.util.logging.Logger.exiting:(Ljava/lang/String;Ljava/lang/String;)V
        20: .line 1826
            aload 2 /* result */
            areturn
        end local 2 // java.util.List result
        end local 1 // java.lang.String relationTypeName
        end local 0 // javax.management.relation.RelationService this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   21     0              this  Ljavax/management/relation/RelationService;
            0   21     1  relationTypeName  Ljava/lang/String;
            2    3     2            excMsg  Ljava/lang/String;
           11   12     2            result  Ljava/util/List<Ljava/lang/String;>;
           13   15     2            result  Ljava/util/List<Ljava/lang/String;>;
           17   21     2            result  Ljava/util/List<Ljava/lang/String;>;
            9   13     4           result1  Ljava/util/List<Ljava/lang/String;>;
      Exception table:
        from    to  target  type
           8    14      15  any
          15    16      15  any
    Exceptions:
      throws java.lang.IllegalArgumentException, javax.management.relation.RelationTypeNotFoundException
    Signature: (Ljava/lang/String;)Ljava/util/List<Ljava/lang/String;>;
    MethodParameters:
                  Name  Flags
      relationTypeName  

  public java.util.List<javax.management.ObjectName> getRole(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=9, args_size=3
        start local 0 // javax.management.relation.RelationService this
        start local 1 // java.lang.String relationId
        start local 2 // java.lang.String roleName
         0: .line 1855
            aload 1 /* relationId */
            ifnull 1
            aload 2 /* roleName */
            ifnonnull 3
         1: .line 1856
      StackMap locals:
      StackMap stack:
            ldc "Invalid parameter."
            astore 3 /* excMsg */
        start local 3 // java.lang.String excMsg
         2: .line 1857
            new java.lang.IllegalArgumentException
            dup
            aload 3 /* excMsg */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // java.lang.String excMsg
         3: .line 1860
      StackMap locals:
      StackMap stack:
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
         4: .line 1861
            ldc "getRole"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* relationId */
            aastore
            dup
            iconst_1
            aload 2 /* roleName */
            aastore
         5: .line 1860
            invokevirtual java.util.logging.Logger.entering:(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
         6: .line 1864
            aload 0 /* this */
            invokevirtual javax.management.relation.RelationService.isActive:()V
         7: .line 1867
            aload 0 /* this */
            aload 1 /* relationId */
            invokevirtual javax.management.relation.RelationService.getRelation:(Ljava/lang/String;)Ljava/lang/Object;
            astore 3 /* relObj */
        start local 3 // java.lang.Object relObj
         8: .line 1871
            aload 3 /* relObj */
            instanceof javax.management.relation.RelationSupport
            ifeq 16
         9: .line 1875
            aload 3 /* relObj */
            checkcast javax.management.relation.RelationSupport
            aload 2 /* roleName */
        10: .line 1876
            iconst_1
        11: .line 1877
            aload 0 /* this */
        12: .line 1878
            iconst_0
        13: .line 1875
            invokevirtual javax.management.relation.RelationSupport.getRoleInt:(Ljava/lang/String;ZLjavax/management/relation/RelationService;Z)Ljava/lang/Object;
        14: .line 1874
            invokestatic com.sun.jmx.mbeanserver.Util.cast:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.List
            astore 4 /* result */
        start local 4 // java.util.List result
        15: .line 1880
            goto 40
        end local 4 // java.util.List result
        16: .line 1882
      StackMap locals: java.lang.Object
      StackMap stack:
            iconst_1
            anewarray java.lang.Object
            astore 5 /* params */
        start local 5 // java.lang.Object[] params
        17: .line 1883
            aload 5 /* params */
            iconst_0
            aload 2 /* roleName */
            aastore
        18: .line 1884
            iconst_1
            anewarray java.lang.String
            astore 6 /* signature */
        start local 6 // java.lang.String[] signature
        19: .line 1885
            aload 6 /* signature */
            iconst_0
            ldc "java.lang.String"
            aastore
        20: .line 1892
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myMBeanServer:Ljavax/management/MBeanServer;
            aload 3 /* relObj */
            checkcast javax.management.ObjectName
        21: .line 1893
            ldc "getRole"
        22: .line 1894
            aload 5 /* params */
        23: .line 1895
            aload 6 /* signature */
        24: .line 1892
            invokeinterface javax.management.MBeanServer.invoke:(Ljavax/management/ObjectName;Ljava/lang/String;[Ljava/lang/Object;[Ljava/lang/String;)Ljava/lang/Object;
        25: .line 1891
            invokestatic com.sun.jmx.mbeanserver.Util.cast:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.List
            astore 7 /* invokeResult */
        start local 7 // java.util.List invokeResult
        26: .line 1896
            aload 7 /* invokeResult */
            ifnull 27
            aload 7 /* invokeResult */
            instanceof java.util.ArrayList
            ifeq 29
        27: .line 1897
      StackMap locals: javax.management.relation.RelationService java.lang.String java.lang.String java.lang.Object top java.lang.Object[] java.lang.String[] java.util.List
      StackMap stack:
            aload 7 /* invokeResult */
            astore 4 /* result */
        start local 4 // java.util.List result
        28: goto 40
        end local 4 // java.util.List result
        29: .line 1899
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            aload 7 /* invokeResult */
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            astore 4 /* result */
        end local 7 // java.util.List invokeResult
        start local 4 // java.util.List result
        30: .line 1900
            goto 40
        end local 4 // java.util.List result
      StackMap locals: javax.management.relation.RelationService java.lang.String java.lang.String java.lang.Object top java.lang.Object[] java.lang.String[]
      StackMap stack: javax.management.InstanceNotFoundException
        31: astore 7 /* exc1 */
        start local 7 // javax.management.InstanceNotFoundException exc1
        32: .line 1901
            new java.lang.RuntimeException
            dup
            aload 7 /* exc1 */
            invokevirtual javax.management.InstanceNotFoundException.getMessage:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 7 // javax.management.InstanceNotFoundException exc1
        33: .line 1902
      StackMap locals:
      StackMap stack: javax.management.ReflectionException
            astore 7 /* exc2 */
        start local 7 // javax.management.ReflectionException exc2
        34: .line 1903
            new java.lang.RuntimeException
            dup
            aload 7 /* exc2 */
            invokevirtual javax.management.ReflectionException.getMessage:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 7 // javax.management.ReflectionException exc2
        35: .line 1904
      StackMap locals:
      StackMap stack: javax.management.MBeanException
            astore 7 /* exc3 */
        start local 7 // javax.management.MBeanException exc3
        36: .line 1905
            aload 7 /* exc3 */
            invokevirtual javax.management.MBeanException.getTargetException:()Ljava/lang/Exception;
            astore 8 /* wrappedExc */
        start local 8 // java.lang.Exception wrappedExc
        37: .line 1906
            aload 8 /* wrappedExc */
            instanceof javax.management.relation.RoleNotFoundException
            ifeq 39
        38: .line 1907
            aload 8 /* wrappedExc */
            checkcast javax.management.relation.RoleNotFoundException
            athrow
        39: .line 1909
      StackMap locals: javax.management.MBeanException java.lang.Exception
      StackMap stack:
            new java.lang.RuntimeException
            dup
            aload 8 /* wrappedExc */
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 8 // java.lang.Exception wrappedExc
        end local 7 // javax.management.MBeanException exc3
        end local 6 // java.lang.String[] signature
        end local 5 // java.lang.Object[] params
        start local 4 // java.util.List result
        40: .line 1914
      StackMap locals: javax.management.relation.RelationService java.lang.String java.lang.String java.lang.Object java.util.List
      StackMap stack:
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            ldc "getRole"
            invokevirtual java.util.logging.Logger.exiting:(Ljava/lang/String;Ljava/lang/String;)V
        41: .line 1915
            aload 4 /* result */
            areturn
        end local 4 // java.util.List result
        end local 3 // java.lang.Object relObj
        end local 2 // java.lang.String roleName
        end local 1 // java.lang.String relationId
        end local 0 // javax.management.relation.RelationService this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   42     0          this  Ljavax/management/relation/RelationService;
            0   42     1    relationId  Ljava/lang/String;
            0   42     2      roleName  Ljava/lang/String;
            2    3     3        excMsg  Ljava/lang/String;
            8   42     3        relObj  Ljava/lang/Object;
           15   16     4        result  Ljava/util/List<Ljavax/management/ObjectName;>;
           28   29     4        result  Ljava/util/List<Ljavax/management/ObjectName;>;
           30   31     4        result  Ljava/util/List<Ljavax/management/ObjectName;>;
           40   42     4        result  Ljava/util/List<Ljavax/management/ObjectName;>;
           17   40     5        params  [Ljava/lang/Object;
           19   40     6     signature  [Ljava/lang/String;
           26   30     7  invokeResult  Ljava/util/List<Ljavax/management/ObjectName;>;
           32   33     7          exc1  Ljavax/management/InstanceNotFoundException;
           34   35     7          exc2  Ljavax/management/ReflectionException;
           36   40     7          exc3  Ljavax/management/MBeanException;
           37   40     8    wrappedExc  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
          20    30      31  Class javax.management.InstanceNotFoundException
          20    30      33  Class javax.management.ReflectionException
          20    30      35  Class javax.management.MBeanException
    Exceptions:
      throws javax.management.relation.RelationServiceNotRegisteredException, java.lang.IllegalArgumentException, javax.management.relation.RelationNotFoundException, javax.management.relation.RoleNotFoundException
    Signature: (Ljava/lang/String;Ljava/lang/String;)Ljava/util/List<Ljavax/management/ObjectName;>;
    MethodParameters:
            Name  Flags
      relationId  
      roleName    

  public javax.management.relation.RoleResult getRoles(java.lang.String, java.lang.String[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/String;)Ljavax/management/relation/RoleResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=8, args_size=3
        start local 0 // javax.management.relation.RelationService this
        start local 1 // java.lang.String relationId
        start local 2 // java.lang.String[] roleNameArray
         0: .line 1941
            aload 1 /* relationId */
            ifnull 1
            aload 2 /* roleNameArray */
            ifnonnull 3
         1: .line 1942
      StackMap locals:
      StackMap stack:
            ldc "Invalid parameter."
            astore 3 /* excMsg */
        start local 3 // java.lang.String excMsg
         2: .line 1943
            new java.lang.IllegalArgumentException
            dup
            aload 3 /* excMsg */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // java.lang.String excMsg
         3: .line 1946
      StackMap locals:
      StackMap stack:
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
         4: .line 1947
            ldc "getRoles"
            aload 1 /* relationId */
         5: .line 1946
            invokevirtual java.util.logging.Logger.entering:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
         6: .line 1950
            aload 0 /* this */
            invokevirtual javax.management.relation.RelationService.isActive:()V
         7: .line 1953
            aload 0 /* this */
            aload 1 /* relationId */
            invokevirtual javax.management.relation.RelationService.getRelation:(Ljava/lang/String;)Ljava/lang/Object;
            astore 3 /* relObj */
        start local 3 // java.lang.Object relObj
         8: .line 1955
            aconst_null
            astore 4 /* result */
        start local 4 // javax.management.relation.RoleResult result
         9: .line 1957
            aload 3 /* relObj */
            instanceof javax.management.relation.RelationSupport
            ifeq 15
        10: .line 1959
            aload 3 /* relObj */
            checkcast javax.management.relation.RelationSupport
            aload 2 /* roleNameArray */
        11: .line 1960
            iconst_1
        12: .line 1961
            aload 0 /* this */
        13: .line 1959
            invokevirtual javax.management.relation.RelationSupport.getRolesInt:([Ljava/lang/String;ZLjavax/management/relation/RelationService;)Ljavax/management/relation/RoleResult;
            astore 4 /* result */
        14: .line 1962
            goto 35
        15: .line 1964
      StackMap locals: java.lang.Object javax.management.relation.RoleResult
      StackMap stack:
            iconst_1
            anewarray java.lang.Object
            astore 5 /* params */
        start local 5 // java.lang.Object[] params
        16: .line 1965
            aload 5 /* params */
            iconst_0
            aload 2 /* roleNameArray */
            aastore
        17: .line 1966
            iconst_1
            anewarray java.lang.String
            astore 6 /* signature */
        start local 6 // java.lang.String[] signature
        18: .line 1968
            aload 6 /* signature */
            iconst_0
            aload 2 /* roleNameArray */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
        19: .line 1969
            goto 21
      StackMap locals: javax.management.relation.RelationService java.lang.String java.lang.String[] java.lang.Object javax.management.relation.RoleResult java.lang.Object[] java.lang.String[]
      StackMap stack: java.lang.Exception
        20: pop
        21: .line 1977
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myMBeanServer:Ljavax/management/MBeanServer;
            aload 3 /* relObj */
            checkcast javax.management.ObjectName
        22: .line 1978
            ldc "getRoles"
        23: .line 1979
            aload 5 /* params */
        24: .line 1980
            aload 6 /* signature */
        25: .line 1977
            invokeinterface javax.management.MBeanServer.invoke:(Ljavax/management/ObjectName;Ljava/lang/String;[Ljava/lang/Object;[Ljava/lang/String;)Ljava/lang/Object;
        26: .line 1976
            checkcast javax.management.relation.RoleResult
            astore 4 /* result */
        27: .line 1981
            goto 35
      StackMap locals:
      StackMap stack: javax.management.InstanceNotFoundException
        28: astore 7 /* exc1 */
        start local 7 // javax.management.InstanceNotFoundException exc1
        29: .line 1982
            new java.lang.RuntimeException
            dup
            aload 7 /* exc1 */
            invokevirtual javax.management.InstanceNotFoundException.getMessage:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 7 // javax.management.InstanceNotFoundException exc1
        30: .line 1983
      StackMap locals:
      StackMap stack: javax.management.ReflectionException
            astore 7 /* exc2 */
        start local 7 // javax.management.ReflectionException exc2
        31: .line 1984
            new java.lang.RuntimeException
            dup
            aload 7 /* exc2 */
            invokevirtual javax.management.ReflectionException.getMessage:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 7 // javax.management.ReflectionException exc2
        32: .line 1985
      StackMap locals:
      StackMap stack: javax.management.MBeanException
            astore 7 /* exc3 */
        start local 7 // javax.management.MBeanException exc3
        33: .line 1987
            new java.lang.RuntimeException
            dup
            aload 7 /* exc3 */
            invokevirtual javax.management.MBeanException.getTargetException:()Ljava/lang/Exception;
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
        34: .line 1986
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 7 // javax.management.MBeanException exc3
        end local 6 // java.lang.String[] signature
        end local 5 // java.lang.Object[] params
        35: .line 1991
      StackMap locals:
      StackMap stack:
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            ldc "getRoles"
            invokevirtual java.util.logging.Logger.exiting:(Ljava/lang/String;Ljava/lang/String;)V
        36: .line 1992
            aload 4 /* result */
            areturn
        end local 4 // javax.management.relation.RoleResult result
        end local 3 // java.lang.Object relObj
        end local 2 // java.lang.String[] roleNameArray
        end local 1 // java.lang.String relationId
        end local 0 // javax.management.relation.RelationService this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   37     0           this  Ljavax/management/relation/RelationService;
            0   37     1     relationId  Ljava/lang/String;
            0   37     2  roleNameArray  [Ljava/lang/String;
            2    3     3         excMsg  Ljava/lang/String;
            8   37     3         relObj  Ljava/lang/Object;
            9   37     4         result  Ljavax/management/relation/RoleResult;
           16   35     5         params  [Ljava/lang/Object;
           18   35     6      signature  [Ljava/lang/String;
           29   30     7           exc1  Ljavax/management/InstanceNotFoundException;
           31   32     7           exc2  Ljavax/management/ReflectionException;
           33   35     7           exc3  Ljavax/management/MBeanException;
      Exception table:
        from    to  target  type
          18    19      20  Class java.lang.Exception
          21    27      28  Class javax.management.InstanceNotFoundException
          21    27      30  Class javax.management.ReflectionException
          21    27      32  Class javax.management.MBeanException
    Exceptions:
      throws javax.management.relation.RelationServiceNotRegisteredException, java.lang.IllegalArgumentException, javax.management.relation.RelationNotFoundException
    MethodParameters:
               Name  Flags
      relationId     
      roleNameArray  

  public javax.management.relation.RoleResult getAllRoles(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljavax/management/relation/RoleResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // javax.management.relation.RelationService this
        start local 1 // java.lang.String relationId
         0: .line 2014
            aload 1 /* relationId */
            ifnonnull 3
         1: .line 2015
            ldc "Invalid parameter."
            astore 2 /* excMsg */
        start local 2 // java.lang.String excMsg
         2: .line 2016
            new java.lang.IllegalArgumentException
            dup
            aload 2 /* excMsg */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.lang.String excMsg
         3: .line 2019
      StackMap locals:
      StackMap stack:
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
         4: .line 2020
            ldc "getRoles"
            aload 1 /* relationId */
         5: .line 2019
            invokevirtual java.util.logging.Logger.entering:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
         6: .line 2023
            aload 0 /* this */
            aload 1 /* relationId */
            invokevirtual javax.management.relation.RelationService.getRelation:(Ljava/lang/String;)Ljava/lang/Object;
            astore 2 /* relObj */
        start local 2 // java.lang.Object relObj
         7: .line 2025
            aconst_null
            astore 3 /* result */
        start local 3 // javax.management.relation.RoleResult result
         8: .line 2027
            aload 2 /* relObj */
            instanceof javax.management.relation.RelationSupport
            ifeq 11
         9: .line 2029
            aload 2 /* relObj */
            checkcast javax.management.relation.RelationSupport
            iconst_1
            aload 0 /* this */
            invokevirtual javax.management.relation.RelationSupport.getAllRolesInt:(ZLjavax/management/relation/RelationService;)Ljavax/management/relation/RoleResult;
            astore 3 /* result */
        10: .line 2031
            goto 18
        11: .line 2036
      StackMap locals: java.lang.Object javax.management.relation.RoleResult
      StackMap stack:
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myMBeanServer:Ljavax/management/MBeanServer;
            aload 2 /* relObj */
            checkcast javax.management.ObjectName
        12: .line 2037
            ldc "AllRoles"
        13: .line 2036
            invokeinterface javax.management.MBeanServer.getAttribute:(Ljavax/management/ObjectName;Ljava/lang/String;)Ljava/lang/Object;
        14: .line 2035
            checkcast javax.management.relation.RoleResult
            astore 3 /* result */
        15: .line 2038
            goto 18
      StackMap locals:
      StackMap stack: java.lang.Exception
        16: astore 4 /* exc */
        start local 4 // java.lang.Exception exc
        17: .line 2039
            new java.lang.RuntimeException
            dup
            aload 4 /* exc */
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // java.lang.Exception exc
        18: .line 2043
      StackMap locals:
      StackMap stack:
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            ldc "getRoles"
            invokevirtual java.util.logging.Logger.exiting:(Ljava/lang/String;Ljava/lang/String;)V
        19: .line 2044
            aload 3 /* result */
            areturn
        end local 3 // javax.management.relation.RoleResult result
        end local 2 // java.lang.Object relObj
        end local 1 // java.lang.String relationId
        end local 0 // javax.management.relation.RelationService this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   20     0        this  Ljavax/management/relation/RelationService;
            0   20     1  relationId  Ljava/lang/String;
            2    3     2      excMsg  Ljava/lang/String;
            7   20     2      relObj  Ljava/lang/Object;
            8   20     3      result  Ljavax/management/relation/RoleResult;
           17   18     4         exc  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
          11    15      16  Class java.lang.Exception
    Exceptions:
      throws java.lang.IllegalArgumentException, javax.management.relation.RelationNotFoundException, javax.management.relation.RelationServiceNotRegisteredException
    MethodParameters:
            Name  Flags
      relationId  

  public java.lang.Integer getRoleCardinality(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Integer;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=9, args_size=3
        start local 0 // javax.management.relation.RelationService this
        start local 1 // java.lang.String relationId
        start local 2 // java.lang.String roleName
         0: .line 2065
            aload 1 /* relationId */
            ifnull 1
            aload 2 /* roleName */
            ifnonnull 3
         1: .line 2066
      StackMap locals:
      StackMap stack:
            ldc "Invalid parameter."
            astore 3 /* excMsg */
        start local 3 // java.lang.String excMsg
         2: .line 2067
            new java.lang.IllegalArgumentException
            dup
            aload 3 /* excMsg */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // java.lang.String excMsg
         3: .line 2070
      StackMap locals:
      StackMap stack:
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
         4: .line 2071
            ldc "getRoleCardinality"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* relationId */
            aastore
            dup
            iconst_1
            aload 2 /* roleName */
            aastore
         5: .line 2070
            invokevirtual java.util.logging.Logger.entering:(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
         6: .line 2074
            aload 0 /* this */
            aload 1 /* relationId */
            invokevirtual javax.management.relation.RelationService.getRelation:(Ljava/lang/String;)Ljava/lang/Object;
            astore 3 /* relObj */
        start local 3 // java.lang.Object relObj
         7: .line 2076
            aconst_null
            astore 4 /* result */
        start local 4 // java.lang.Integer result
         8: .line 2078
            aload 3 /* relObj */
            instanceof javax.management.relation.RelationSupport
            ifeq 11
         9: .line 2081
            aload 3 /* relObj */
            checkcast javax.management.relation.RelationSupport
            aload 2 /* roleName */
            invokevirtual javax.management.relation.RelationSupport.getRoleCardinality:(Ljava/lang/String;)Ljava/lang/Integer;
            astore 4 /* result */
        10: .line 2083
            goto 31
        11: .line 2085
      StackMap locals: java.lang.Object java.lang.Integer
      StackMap stack:
            iconst_1
            anewarray java.lang.Object
            astore 5 /* params */
        start local 5 // java.lang.Object[] params
        12: .line 2086
            aload 5 /* params */
            iconst_0
            aload 2 /* roleName */
            aastore
        13: .line 2087
            iconst_1
            anewarray java.lang.String
            astore 6 /* signature */
        start local 6 // java.lang.String[] signature
        14: .line 2088
            aload 6 /* signature */
            iconst_0
            ldc "java.lang.String"
            aastore
        15: .line 2095
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myMBeanServer:Ljavax/management/MBeanServer;
            aload 3 /* relObj */
            checkcast javax.management.ObjectName
        16: .line 2096
            ldc "getRoleCardinality"
        17: .line 2097
            aload 5 /* params */
        18: .line 2098
            aload 6 /* signature */
        19: .line 2095
            invokeinterface javax.management.MBeanServer.invoke:(Ljavax/management/ObjectName;Ljava/lang/String;[Ljava/lang/Object;[Ljava/lang/String;)Ljava/lang/Object;
        20: .line 2094
            checkcast java.lang.Integer
            astore 4 /* result */
        21: .line 2099
            goto 31
      StackMap locals: javax.management.relation.RelationService java.lang.String java.lang.String java.lang.Object java.lang.Integer java.lang.Object[] java.lang.String[]
      StackMap stack: javax.management.InstanceNotFoundException
        22: astore 7 /* exc1 */
        start local 7 // javax.management.InstanceNotFoundException exc1
        23: .line 2100
            new java.lang.RuntimeException
            dup
            aload 7 /* exc1 */
            invokevirtual javax.management.InstanceNotFoundException.getMessage:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 7 // javax.management.InstanceNotFoundException exc1
        24: .line 2101
      StackMap locals:
      StackMap stack: javax.management.ReflectionException
            astore 7 /* exc2 */
        start local 7 // javax.management.ReflectionException exc2
        25: .line 2102
            new java.lang.RuntimeException
            dup
            aload 7 /* exc2 */
            invokevirtual javax.management.ReflectionException.getMessage:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 7 // javax.management.ReflectionException exc2
        26: .line 2103
      StackMap locals:
      StackMap stack: javax.management.MBeanException
            astore 7 /* exc3 */
        start local 7 // javax.management.MBeanException exc3
        27: .line 2104
            aload 7 /* exc3 */
            invokevirtual javax.management.MBeanException.getTargetException:()Ljava/lang/Exception;
            astore 8 /* wrappedExc */
        start local 8 // java.lang.Exception wrappedExc
        28: .line 2105
            aload 8 /* wrappedExc */
            instanceof javax.management.relation.RoleNotFoundException
            ifeq 30
        29: .line 2106
            aload 8 /* wrappedExc */
            checkcast javax.management.relation.RoleNotFoundException
            athrow
        30: .line 2108
      StackMap locals: javax.management.MBeanException java.lang.Exception
      StackMap stack:
            new java.lang.RuntimeException
            dup
            aload 8 /* wrappedExc */
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 8 // java.lang.Exception wrappedExc
        end local 7 // javax.management.MBeanException exc3
        end local 6 // java.lang.String[] signature
        end local 5 // java.lang.Object[] params
        31: .line 2113
      StackMap locals: javax.management.relation.RelationService java.lang.String java.lang.String java.lang.Object java.lang.Integer
      StackMap stack:
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
        32: .line 2114
            ldc "getRoleCardinality"
        33: .line 2113
            invokevirtual java.util.logging.Logger.exiting:(Ljava/lang/String;Ljava/lang/String;)V
        34: .line 2115
            aload 4 /* result */
            areturn
        end local 4 // java.lang.Integer result
        end local 3 // java.lang.Object relObj
        end local 2 // java.lang.String roleName
        end local 1 // java.lang.String relationId
        end local 0 // javax.management.relation.RelationService this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   35     0        this  Ljavax/management/relation/RelationService;
            0   35     1  relationId  Ljava/lang/String;
            0   35     2    roleName  Ljava/lang/String;
            2    3     3      excMsg  Ljava/lang/String;
            7   35     3      relObj  Ljava/lang/Object;
            8   35     4      result  Ljava/lang/Integer;
           12   31     5      params  [Ljava/lang/Object;
           14   31     6   signature  [Ljava/lang/String;
           23   24     7        exc1  Ljavax/management/InstanceNotFoundException;
           25   26     7        exc2  Ljavax/management/ReflectionException;
           27   31     7        exc3  Ljavax/management/MBeanException;
           28   31     8  wrappedExc  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
          15    21      22  Class javax.management.InstanceNotFoundException
          15    21      24  Class javax.management.ReflectionException
          15    21      26  Class javax.management.MBeanException
    Exceptions:
      throws java.lang.IllegalArgumentException, javax.management.relation.RelationNotFoundException, javax.management.relation.RoleNotFoundException
    MethodParameters:
            Name  Flags
      relationId  
      roleName    

  public void setRole(java.lang.String, javax.management.relation.Role);
    descriptor: (Ljava/lang/String;Ljavax/management/relation/Role;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=8, args_size=3
        start local 0 // javax.management.relation.RelationService this
        start local 1 // java.lang.String relationId
        start local 2 // javax.management.relation.Role role
         0: .line 2157
            aload 1 /* relationId */
            ifnull 1
            aload 2 /* role */
            ifnonnull 3
         1: .line 2158
      StackMap locals:
      StackMap stack:
            ldc "Invalid parameter."
            astore 3 /* excMsg */
        start local 3 // java.lang.String excMsg
         2: .line 2159
            new java.lang.IllegalArgumentException
            dup
            aload 3 /* excMsg */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // java.lang.String excMsg
         3: .line 2162
      StackMap locals:
      StackMap stack:
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
         4: .line 2163
            ldc "setRole"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* relationId */
            aastore
            dup
            iconst_1
            aload 2 /* role */
            aastore
         5: .line 2162
            invokevirtual java.util.logging.Logger.entering:(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
         6: .line 2166
            aload 0 /* this */
            invokevirtual javax.management.relation.RelationService.isActive:()V
         7: .line 2169
            aload 0 /* this */
            aload 1 /* relationId */
            invokevirtual javax.management.relation.RelationService.getRelation:(Ljava/lang/String;)Ljava/lang/Object;
            astore 3 /* relObj */
        start local 3 // java.lang.Object relObj
         8: .line 2171
            aload 3 /* relObj */
            instanceof javax.management.relation.RelationSupport
            ifeq 17
         9: .line 2180
            aload 3 /* relObj */
            checkcast javax.management.relation.RelationSupport
            aload 2 /* role */
        10: .line 2181
            iconst_1
        11: .line 2182
            aload 0 /* this */
        12: .line 2183
            iconst_0
        13: .line 2180
            invokevirtual javax.management.relation.RelationSupport.setRoleInt:(Ljavax/management/relation/Role;ZLjavax/management/relation/RelationService;Z)Ljava/lang/Object;
            pop
        14: .line 2185
            goto 40
      StackMap locals: javax.management.relation.RelationService java.lang.String javax.management.relation.Role java.lang.Object
      StackMap stack: javax.management.relation.RelationTypeNotFoundException
        15: astore 4 /* exc */
        start local 4 // javax.management.relation.RelationTypeNotFoundException exc
        16: .line 2186
            new java.lang.RuntimeException
            dup
            aload 4 /* exc */
            invokevirtual javax.management.relation.RelationTypeNotFoundException.getMessage:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // javax.management.relation.RelationTypeNotFoundException exc
        17: .line 2191
      StackMap locals:
      StackMap stack:
            iconst_1
            anewarray java.lang.Object
            astore 4 /* params */
        start local 4 // java.lang.Object[] params
        18: .line 2192
            aload 4 /* params */
            iconst_0
            aload 2 /* role */
            aastore
        19: .line 2193
            iconst_1
            anewarray java.lang.String
            astore 5 /* signature */
        start local 5 // java.lang.String[] signature
        20: .line 2194
            aload 5 /* signature */
            iconst_0
            ldc "javax.management.relation.Role"
            aastore
        21: .line 2202
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myMBeanServer:Ljavax/management/MBeanServer;
            aload 3 /* relObj */
            checkcast javax.management.ObjectName
        22: .line 2203
            new javax.management.Attribute
            dup
            ldc "Role"
            aload 2 /* role */
            invokespecial javax.management.Attribute.<init>:(Ljava/lang/String;Ljava/lang/Object;)V
        23: .line 2202
            invokeinterface javax.management.MBeanServer.setAttribute:(Ljavax/management/ObjectName;Ljavax/management/Attribute;)V
        24: .line 2205
            goto 40
      StackMap locals: javax.management.relation.RelationService java.lang.String javax.management.relation.Role java.lang.Object java.lang.Object[] java.lang.String[]
      StackMap stack: javax.management.InstanceNotFoundException
        25: astore 6 /* exc1 */
        start local 6 // javax.management.InstanceNotFoundException exc1
        26: .line 2206
            new java.lang.RuntimeException
            dup
            aload 6 /* exc1 */
            invokevirtual javax.management.InstanceNotFoundException.getMessage:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 6 // javax.management.InstanceNotFoundException exc1
        27: .line 2207
      StackMap locals:
      StackMap stack: javax.management.ReflectionException
            astore 6 /* exc3 */
        start local 6 // javax.management.ReflectionException exc3
        28: .line 2208
            new java.lang.RuntimeException
            dup
            aload 6 /* exc3 */
            invokevirtual javax.management.ReflectionException.getMessage:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 6 // javax.management.ReflectionException exc3
        29: .line 2209
      StackMap locals:
      StackMap stack: javax.management.MBeanException
            astore 6 /* exc2 */
        start local 6 // javax.management.MBeanException exc2
        30: .line 2210
            aload 6 /* exc2 */
            invokevirtual javax.management.MBeanException.getTargetException:()Ljava/lang/Exception;
            astore 7 /* wrappedExc */
        start local 7 // java.lang.Exception wrappedExc
        31: .line 2211
            aload 7 /* wrappedExc */
            instanceof javax.management.relation.RoleNotFoundException
            ifeq 33
        32: .line 2212
            aload 7 /* wrappedExc */
            checkcast javax.management.relation.RoleNotFoundException
            athrow
        33: .line 2213
      StackMap locals: javax.management.MBeanException java.lang.Exception
      StackMap stack:
            aload 7 /* wrappedExc */
            instanceof javax.management.relation.InvalidRoleValueException
            ifeq 35
        34: .line 2214
            aload 7 /* wrappedExc */
            checkcast javax.management.relation.InvalidRoleValueException
            athrow
        35: .line 2216
      StackMap locals:
      StackMap stack:
            new java.lang.RuntimeException
            dup
            aload 7 /* wrappedExc */
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 7 // java.lang.Exception wrappedExc
        end local 6 // javax.management.MBeanException exc2
        36: .line 2219
      StackMap locals: javax.management.relation.RelationService java.lang.String javax.management.relation.Role java.lang.Object java.lang.Object[] java.lang.String[]
      StackMap stack: javax.management.AttributeNotFoundException
            astore 6 /* exc4 */
        start local 6 // javax.management.AttributeNotFoundException exc4
        37: .line 2220
            new java.lang.RuntimeException
            dup
            aload 6 /* exc4 */
            invokevirtual javax.management.AttributeNotFoundException.getMessage:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 6 // javax.management.AttributeNotFoundException exc4
        38: .line 2221
      StackMap locals:
      StackMap stack: javax.management.InvalidAttributeValueException
            astore 6 /* exc5 */
        start local 6 // javax.management.InvalidAttributeValueException exc5
        39: .line 2222
            new java.lang.RuntimeException
            dup
            aload 6 /* exc5 */
            invokevirtual javax.management.InvalidAttributeValueException.getMessage:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 6 // javax.management.InvalidAttributeValueException exc5
        end local 5 // java.lang.String[] signature
        end local 4 // java.lang.Object[] params
        40: .line 2226
      StackMap locals:
      StackMap stack:
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            ldc "setRole"
            invokevirtual java.util.logging.Logger.exiting:(Ljava/lang/String;Ljava/lang/String;)V
        41: .line 2227
            return
        end local 3 // java.lang.Object relObj
        end local 2 // javax.management.relation.Role role
        end local 1 // java.lang.String relationId
        end local 0 // javax.management.relation.RelationService this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   42     0        this  Ljavax/management/relation/RelationService;
            0   42     1  relationId  Ljava/lang/String;
            0   42     2        role  Ljavax/management/relation/Role;
            2    3     3      excMsg  Ljava/lang/String;
            8   42     3      relObj  Ljava/lang/Object;
           16   17     4         exc  Ljavax/management/relation/RelationTypeNotFoundException;
           18   40     4      params  [Ljava/lang/Object;
           20   40     5   signature  [Ljava/lang/String;
           26   27     6        exc1  Ljavax/management/InstanceNotFoundException;
           28   29     6        exc3  Ljavax/management/ReflectionException;
           30   36     6        exc2  Ljavax/management/MBeanException;
           31   36     7  wrappedExc  Ljava/lang/Exception;
           37   38     6        exc4  Ljavax/management/AttributeNotFoundException;
           39   40     6        exc5  Ljavax/management/InvalidAttributeValueException;
      Exception table:
        from    to  target  type
           9    14      15  Class javax.management.relation.RelationTypeNotFoundException
          21    24      25  Class javax.management.InstanceNotFoundException
          21    24      27  Class javax.management.ReflectionException
          21    24      29  Class javax.management.MBeanException
          21    24      36  Class javax.management.AttributeNotFoundException
          21    24      38  Class javax.management.InvalidAttributeValueException
    Exceptions:
      throws javax.management.relation.RelationServiceNotRegisteredException, java.lang.IllegalArgumentException, javax.management.relation.RelationNotFoundException, javax.management.relation.RoleNotFoundException, javax.management.relation.InvalidRoleValueException
    MethodParameters:
            Name  Flags
      relationId  
      role        

  public javax.management.relation.RoleResult setRoles(java.lang.String, javax.management.relation.RoleList);
    descriptor: (Ljava/lang/String;Ljavax/management/relation/RoleList;)Ljavax/management/relation/RoleResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=8, args_size=3
        start local 0 // javax.management.relation.RelationService this
        start local 1 // java.lang.String relationId
        start local 2 // javax.management.relation.RoleList roleList
         0: .line 2257
            aload 1 /* relationId */
            ifnull 1
            aload 2 /* roleList */
            ifnonnull 3
         1: .line 2258
      StackMap locals:
      StackMap stack:
            ldc "Invalid parameter."
            astore 3 /* excMsg */
        start local 3 // java.lang.String excMsg
         2: .line 2259
            new java.lang.IllegalArgumentException
            dup
            aload 3 /* excMsg */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // java.lang.String excMsg
         3: .line 2262
      StackMap locals:
      StackMap stack:
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
         4: .line 2263
            ldc "setRoles"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* relationId */
            aastore
            dup
            iconst_1
            aload 2 /* roleList */
            aastore
         5: .line 2262
            invokevirtual java.util.logging.Logger.entering:(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
         6: .line 2266
            aload 0 /* this */
            invokevirtual javax.management.relation.RelationService.isActive:()V
         7: .line 2269
            aload 0 /* this */
            aload 1 /* relationId */
            invokevirtual javax.management.relation.RelationService.getRelation:(Ljava/lang/String;)Ljava/lang/Object;
            astore 3 /* relObj */
        start local 3 // java.lang.Object relObj
         8: .line 2271
            aconst_null
            astore 4 /* result */
        start local 4 // javax.management.relation.RoleResult result
         9: .line 2273
            aload 3 /* relObj */
            instanceof javax.management.relation.RelationSupport
            ifeq 17
        10: .line 2280
            aload 3 /* relObj */
            checkcast javax.management.relation.RelationSupport
            aload 2 /* roleList */
        11: .line 2281
            iconst_1
        12: .line 2282
            aload 0 /* this */
        13: .line 2280
            invokevirtual javax.management.relation.RelationSupport.setRolesInt:(Ljavax/management/relation/RoleList;ZLjavax/management/relation/RelationService;)Ljavax/management/relation/RoleResult;
            astore 4 /* result */
        14: .line 2283
            goto 35
      StackMap locals: javax.management.relation.RelationService java.lang.String javax.management.relation.RoleList java.lang.Object javax.management.relation.RoleResult
      StackMap stack: javax.management.relation.RelationTypeNotFoundException
        15: astore 5 /* exc */
        start local 5 // javax.management.relation.RelationTypeNotFoundException exc
        16: .line 2284
            new java.lang.RuntimeException
            dup
            aload 5 /* exc */
            invokevirtual javax.management.relation.RelationTypeNotFoundException.getMessage:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 5 // javax.management.relation.RelationTypeNotFoundException exc
        17: .line 2289
      StackMap locals:
      StackMap stack:
            iconst_1
            anewarray java.lang.Object
            astore 5 /* params */
        start local 5 // java.lang.Object[] params
        18: .line 2290
            aload 5 /* params */
            iconst_0
            aload 2 /* roleList */
            aastore
        19: .line 2291
            iconst_1
            anewarray java.lang.String
            astore 6 /* signature */
        start local 6 // java.lang.String[] signature
        20: .line 2292
            aload 6 /* signature */
            iconst_0
            ldc "javax.management.relation.RoleList"
            aastore
        21: .line 2297
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myMBeanServer:Ljavax/management/MBeanServer;
            aload 3 /* relObj */
            checkcast javax.management.ObjectName
        22: .line 2298
            ldc "setRoles"
        23: .line 2299
            aload 5 /* params */
        24: .line 2300
            aload 6 /* signature */
        25: .line 2297
            invokeinterface javax.management.MBeanServer.invoke:(Ljavax/management/ObjectName;Ljava/lang/String;[Ljava/lang/Object;[Ljava/lang/String;)Ljava/lang/Object;
        26: .line 2296
            checkcast javax.management.relation.RoleResult
            astore 4 /* result */
        27: .line 2301
            goto 35
      StackMap locals: javax.management.relation.RelationService java.lang.String javax.management.relation.RoleList java.lang.Object javax.management.relation.RoleResult java.lang.Object[] java.lang.String[]
      StackMap stack: javax.management.InstanceNotFoundException
        28: astore 7 /* exc1 */
        start local 7 // javax.management.InstanceNotFoundException exc1
        29: .line 2302
            new java.lang.RuntimeException
            dup
            aload 7 /* exc1 */
            invokevirtual javax.management.InstanceNotFoundException.getMessage:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 7 // javax.management.InstanceNotFoundException exc1
        30: .line 2303
      StackMap locals:
      StackMap stack: javax.management.ReflectionException
            astore 7 /* exc3 */
        start local 7 // javax.management.ReflectionException exc3
        31: .line 2304
            new java.lang.RuntimeException
            dup
            aload 7 /* exc3 */
            invokevirtual javax.management.ReflectionException.getMessage:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 7 // javax.management.ReflectionException exc3
        32: .line 2305
      StackMap locals:
      StackMap stack: javax.management.MBeanException
            astore 7 /* exc2 */
        start local 7 // javax.management.MBeanException exc2
        33: .line 2307
            new java.lang.RuntimeException
            dup
            aload 7 /* exc2 */
            invokevirtual javax.management.MBeanException.getTargetException:()Ljava/lang/Exception;
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
        34: .line 2306
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 7 // javax.management.MBeanException exc2
        end local 6 // java.lang.String[] signature
        end local 5 // java.lang.Object[] params
        35: .line 2311
      StackMap locals:
      StackMap stack:
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            ldc "setRoles"
            invokevirtual java.util.logging.Logger.exiting:(Ljava/lang/String;Ljava/lang/String;)V
        36: .line 2312
            aload 4 /* result */
            areturn
        end local 4 // javax.management.relation.RoleResult result
        end local 3 // java.lang.Object relObj
        end local 2 // javax.management.relation.RoleList roleList
        end local 1 // java.lang.String relationId
        end local 0 // javax.management.relation.RelationService this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   37     0        this  Ljavax/management/relation/RelationService;
            0   37     1  relationId  Ljava/lang/String;
            0   37     2    roleList  Ljavax/management/relation/RoleList;
            2    3     3      excMsg  Ljava/lang/String;
            8   37     3      relObj  Ljava/lang/Object;
            9   37     4      result  Ljavax/management/relation/RoleResult;
           16   17     5         exc  Ljavax/management/relation/RelationTypeNotFoundException;
           18   35     5      params  [Ljava/lang/Object;
           20   35     6   signature  [Ljava/lang/String;
           29   30     7        exc1  Ljavax/management/InstanceNotFoundException;
           31   32     7        exc3  Ljavax/management/ReflectionException;
           33   35     7        exc2  Ljavax/management/MBeanException;
      Exception table:
        from    to  target  type
          10    14      15  Class javax.management.relation.RelationTypeNotFoundException
          21    27      28  Class javax.management.InstanceNotFoundException
          21    27      30  Class javax.management.ReflectionException
          21    27      32  Class javax.management.MBeanException
    Exceptions:
      throws javax.management.relation.RelationServiceNotRegisteredException, java.lang.IllegalArgumentException, javax.management.relation.RelationNotFoundException
    MethodParameters:
            Name  Flags
      relationId  
      roleList    

  public java.util.Map<javax.management.ObjectName, java.util.List<java.lang.String>> getReferencedMBeans(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // javax.management.relation.RelationService this
        start local 1 // java.lang.String relationId
         0: .line 2333
            aload 1 /* relationId */
            ifnonnull 3
         1: .line 2334
            ldc "Invalid parameter."
            astore 2 /* excMsg */
        start local 2 // java.lang.String excMsg
         2: .line 2335
            new java.lang.IllegalArgumentException
            dup
            aload 2 /* excMsg */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.lang.String excMsg
         3: .line 2338
      StackMap locals:
      StackMap stack:
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
         4: .line 2339
            ldc "getReferencedMBeans"
            aload 1 /* relationId */
         5: .line 2338
            invokevirtual java.util.logging.Logger.entering:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
         6: .line 2342
            aload 0 /* this */
            aload 1 /* relationId */
            invokevirtual javax.management.relation.RelationService.getRelation:(Ljava/lang/String;)Ljava/lang/Object;
            astore 2 /* relObj */
        start local 2 // java.lang.Object relObj
         7: .line 2346
            aload 2 /* relObj */
            instanceof javax.management.relation.RelationSupport
            ifeq 10
         8: .line 2348
            aload 2 /* relObj */
            checkcast javax.management.relation.RelationSupport
            invokevirtual javax.management.relation.RelationSupport.getReferencedMBeans:()Ljava/util/Map;
            astore 3 /* result */
        start local 3 // java.util.Map result
         9: .line 2350
            goto 17
        end local 3 // java.util.Map result
        10: .line 2355
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myMBeanServer:Ljavax/management/MBeanServer;
            aload 2 /* relObj */
            checkcast javax.management.ObjectName
        11: .line 2356
            ldc "ReferencedMBeans"
        12: .line 2355
            invokeinterface javax.management.MBeanServer.getAttribute:(Ljavax/management/ObjectName;Ljava/lang/String;)Ljava/lang/Object;
        13: .line 2354
            invokestatic com.sun.jmx.mbeanserver.Util.cast:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Map
            astore 3 /* result */
        start local 3 // java.util.Map result
        14: .line 2357
            goto 17
        end local 3 // java.util.Map result
      StackMap locals:
      StackMap stack: java.lang.Exception
        15: astore 4 /* exc */
        start local 4 // java.lang.Exception exc
        16: .line 2358
            new java.lang.RuntimeException
            dup
            aload 4 /* exc */
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // java.lang.Exception exc
        start local 3 // java.util.Map result
        17: .line 2362
      StackMap locals: java.util.Map
      StackMap stack:
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
        18: .line 2363
            ldc "getReferencedMBeans"
        19: .line 2362
            invokevirtual java.util.logging.Logger.exiting:(Ljava/lang/String;Ljava/lang/String;)V
        20: .line 2364
            aload 3 /* result */
            areturn
        end local 3 // java.util.Map result
        end local 2 // java.lang.Object relObj
        end local 1 // java.lang.String relationId
        end local 0 // javax.management.relation.RelationService this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   21     0        this  Ljavax/management/relation/RelationService;
            0   21     1  relationId  Ljava/lang/String;
            2    3     2      excMsg  Ljava/lang/String;
            7   21     2      relObj  Ljava/lang/Object;
            9   10     3      result  Ljava/util/Map<Ljavax/management/ObjectName;Ljava/util/List<Ljava/lang/String;>;>;
           14   15     3      result  Ljava/util/Map<Ljavax/management/ObjectName;Ljava/util/List<Ljava/lang/String;>;>;
           17   21     3      result  Ljava/util/Map<Ljavax/management/ObjectName;Ljava/util/List<Ljava/lang/String;>;>;
           16   17     4         exc  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
          10    14      15  Class java.lang.Exception
    Exceptions:
      throws java.lang.IllegalArgumentException, javax.management.relation.RelationNotFoundException
    Signature: (Ljava/lang/String;)Ljava/util/Map<Ljavax/management/ObjectName;Ljava/util/List<Ljava/lang/String;>;>;
    MethodParameters:
            Name  Flags
      relationId  

  public java.lang.String getRelationTypeName(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // javax.management.relation.RelationService this
        start local 1 // java.lang.String relationId
         0: .line 2382
            aload 1 /* relationId */
            ifnonnull 3
         1: .line 2383
            ldc "Invalid parameter."
            astore 2 /* excMsg */
        start local 2 // java.lang.String excMsg
         2: .line 2384
            new java.lang.IllegalArgumentException
            dup
            aload 2 /* excMsg */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.lang.String excMsg
         3: .line 2387
      StackMap locals:
      StackMap stack:
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
         4: .line 2388
            ldc "getRelationTypeName"
            aload 1 /* relationId */
         5: .line 2387
            invokevirtual java.util.logging.Logger.entering:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
         6: .line 2391
            aload 0 /* this */
            aload 1 /* relationId */
            invokevirtual javax.management.relation.RelationService.getRelation:(Ljava/lang/String;)Ljava/lang/Object;
            astore 2 /* relObj */
        start local 2 // java.lang.Object relObj
         7: .line 2393
            aconst_null
            astore 3 /* result */
        start local 3 // java.lang.String result
         8: .line 2395
            aload 2 /* relObj */
            instanceof javax.management.relation.RelationSupport
            ifeq 11
         9: .line 2397
            aload 2 /* relObj */
            checkcast javax.management.relation.RelationSupport
            invokevirtual javax.management.relation.RelationSupport.getRelationTypeName:()Ljava/lang/String;
            astore 3 /* result */
        10: .line 2399
            goto 18
        11: .line 2404
      StackMap locals: java.lang.Object java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myMBeanServer:Ljavax/management/MBeanServer;
            aload 2 /* relObj */
            checkcast javax.management.ObjectName
        12: .line 2405
            ldc "RelationTypeName"
        13: .line 2404
            invokeinterface javax.management.MBeanServer.getAttribute:(Ljavax/management/ObjectName;Ljava/lang/String;)Ljava/lang/Object;
        14: .line 2403
            checkcast java.lang.String
            astore 3 /* result */
        15: .line 2406
            goto 18
      StackMap locals:
      StackMap stack: java.lang.Exception
        16: astore 4 /* exc */
        start local 4 // java.lang.Exception exc
        17: .line 2407
            new java.lang.RuntimeException
            dup
            aload 4 /* exc */
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // java.lang.Exception exc
        18: .line 2411
      StackMap locals:
      StackMap stack:
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
        19: .line 2412
            ldc "getRelationTypeName"
        20: .line 2411
            invokevirtual java.util.logging.Logger.exiting:(Ljava/lang/String;Ljava/lang/String;)V
        21: .line 2413
            aload 3 /* result */
            areturn
        end local 3 // java.lang.String result
        end local 2 // java.lang.Object relObj
        end local 1 // java.lang.String relationId
        end local 0 // javax.management.relation.RelationService this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   22     0        this  Ljavax/management/relation/RelationService;
            0   22     1  relationId  Ljava/lang/String;
            2    3     2      excMsg  Ljava/lang/String;
            7   22     2      relObj  Ljava/lang/Object;
            8   22     3      result  Ljava/lang/String;
           17   18     4         exc  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
          11    15      16  Class java.lang.Exception
    Exceptions:
      throws java.lang.IllegalArgumentException, javax.management.relation.RelationNotFoundException
    MethodParameters:
            Name  Flags
      relationId  

  public void handleNotification(javax.management.Notification, java.lang.Object);
    descriptor: (Ljavax/management/Notification;Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=9, args_size=3
        start local 0 // javax.management.relation.RelationService this
        start local 1 // javax.management.Notification notif
        start local 2 // java.lang.Object handback
         0: .line 2432
            aload 1 /* notif */
            ifnonnull 3
         1: .line 2433
            ldc "Invalid parameter."
            astore 3 /* excMsg */
        start local 3 // java.lang.String excMsg
         2: .line 2434
            new java.lang.IllegalArgumentException
            dup
            aload 3 /* excMsg */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // java.lang.String excMsg
         3: .line 2437
      StackMap locals:
      StackMap stack:
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
         4: .line 2438
            ldc "handleNotification"
            aload 1 /* notif */
         5: .line 2437
            invokevirtual java.util.logging.Logger.entering:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
         6: .line 2440
            aload 1 /* notif */
            instanceof javax.management.MBeanServerNotification
            ifeq 46
         7: .line 2442
            aload 1 /* notif */
            checkcast javax.management.MBeanServerNotification
            astore 3 /* mbsNtf */
        start local 3 // javax.management.MBeanServerNotification mbsNtf
         8: .line 2443
            aload 1 /* notif */
            invokevirtual javax.management.Notification.getType:()Ljava/lang/String;
            astore 4 /* ntfType */
        start local 4 // java.lang.String ntfType
         9: .line 2445
            aload 4 /* ntfType */
        10: .line 2446
            ldc "JMX.mbean.unregistered"
        11: .line 2445
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
        12: .line 2446
            ifeq 46
        13: .line 2448
            aload 1 /* notif */
            checkcast javax.management.MBeanServerNotification
            invokevirtual javax.management.MBeanServerNotification.getMBeanName:()Ljavax/management/ObjectName;
        14: .line 2447
            astore 5 /* mbeanName */
        start local 5 // javax.management.ObjectName mbeanName
        15: .line 2452
            iconst_0
            istore 6 /* isRefedMBeanFlag */
        start local 6 // boolean isRefedMBeanFlag
        16: .line 2453
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myRefedMBeanObjName2RelIdsMap:Ljava/util/Map;
            dup
            astore 7
            monitorenter
        17: .line 2455
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myRefedMBeanObjName2RelIdsMap:Ljava/util/Map;
            aload 5 /* mbeanName */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 25
        18: .line 2457
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myUnregNtfList:Ljava/util/List;
            dup
            astore 8
            monitorenter
        19: .line 2458
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myUnregNtfList:Ljava/util/List;
            aload 3 /* mbsNtf */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        20: .line 2457
            aload 8
            monitorexit
        21: goto 24
      StackMap locals: javax.management.relation.RelationService javax.management.Notification java.lang.Object javax.management.MBeanServerNotification java.lang.String javax.management.ObjectName int java.util.Map java.util.List
      StackMap stack: java.lang.Throwable
        22: aload 8
            monitorexit
        23: athrow
        24: .line 2460
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 6 /* isRefedMBeanFlag */
        25: .line 2462
      StackMap locals:
      StackMap stack:
            iload 6 /* isRefedMBeanFlag */
            ifeq 30
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myPurgeFlag:Z
            ifeq 30
        26: .line 2467
            aload 0 /* this */
            invokevirtual javax.management.relation.RelationService.purgeRelations:()V
        27: .line 2468
            goto 30
      StackMap locals:
      StackMap stack: java.lang.Exception
        28: astore 8 /* exc */
        start local 8 // java.lang.Exception exc
        29: .line 2469
            new java.lang.RuntimeException
            dup
            aload 8 /* exc */
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 8 // java.lang.Exception exc
        30: .line 2453
      StackMap locals:
      StackMap stack:
            aload 7
            monitorexit
        31: goto 34
      StackMap locals:
      StackMap stack: java.lang.Throwable
        32: aload 7
            monitorexit
        33: athrow
        34: .line 2476
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 7 /* relId */
        start local 7 // java.lang.String relId
        35: .line 2477
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myRelMBeanObjName2RelIdMap:Ljava/util/Map;
            dup
            astore 8
            monitorenter
        36: .line 2478
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myRelMBeanObjName2RelIdMap:Ljava/util/Map;
            aload 5 /* mbeanName */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 7 /* relId */
        37: .line 2477
            aload 8
            monitorexit
        38: goto 41
      StackMap locals: javax.management.relation.RelationService javax.management.Notification java.lang.Object javax.management.MBeanServerNotification java.lang.String javax.management.ObjectName int java.lang.String java.util.Map
      StackMap stack: java.lang.Throwable
        39: aload 8
            monitorexit
        40: athrow
        41: .line 2480
      StackMap locals:
      StackMap stack:
            aload 7 /* relId */
            ifnull 46
        42: .line 2488
            aload 0 /* this */
            aload 7 /* relId */
            invokevirtual javax.management.relation.RelationService.removeRelation:(Ljava/lang/String;)V
        43: .line 2489
            goto 46
      StackMap locals:
      StackMap stack: java.lang.Exception
        44: astore 8 /* exc */
        start local 8 // java.lang.Exception exc
        45: .line 2490
            new java.lang.RuntimeException
            dup
            aload 8 /* exc */
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 8 // java.lang.Exception exc
        end local 7 // java.lang.String relId
        end local 6 // boolean isRefedMBeanFlag
        end local 5 // javax.management.ObjectName mbeanName
        end local 4 // java.lang.String ntfType
        end local 3 // javax.management.MBeanServerNotification mbsNtf
        46: .line 2496
      StackMap locals: javax.management.relation.RelationService javax.management.Notification java.lang.Object
      StackMap stack:
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
        47: .line 2497
            ldc "handleNotification"
        48: .line 2496
            invokevirtual java.util.logging.Logger.exiting:(Ljava/lang/String;Ljava/lang/String;)V
        49: .line 2498
            return
        end local 2 // java.lang.Object handback
        end local 1 // javax.management.Notification notif
        end local 0 // javax.management.relation.RelationService this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   50     0              this  Ljavax/management/relation/RelationService;
            0   50     1             notif  Ljavax/management/Notification;
            0   50     2          handback  Ljava/lang/Object;
            2    3     3            excMsg  Ljava/lang/String;
            8   46     3            mbsNtf  Ljavax/management/MBeanServerNotification;
            9   46     4           ntfType  Ljava/lang/String;
           15   46     5         mbeanName  Ljavax/management/ObjectName;
           16   46     6  isRefedMBeanFlag  Z
           29   30     8               exc  Ljava/lang/Exception;
           35   46     7             relId  Ljava/lang/String;
           45   46     8               exc  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
          19    21      22  any
          22    23      22  any
          26    27      28  Class java.lang.Exception
          17    31      32  any
          32    33      32  any
          36    38      39  any
          39    40      39  any
          42    43      44  Class java.lang.Exception
    MethodParameters:
          Name  Flags
      notif     
      handback  

  public javax.management.MBeanNotificationInfo[] getNotificationInfo();
    descriptor: ()[Ljavax/management/MBeanNotificationInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=1
        start local 0 // javax.management.relation.RelationService this
         0: .line 2511
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
         1: .line 2512
            ldc "getNotificationInfo"
         2: .line 2511
            invokevirtual java.util.logging.Logger.entering:(Ljava/lang/String;Ljava/lang/String;)V
         3: .line 2515
            iconst_1
            anewarray javax.management.MBeanNotificationInfo
            pop
         4: .line 2517
            ldc "javax.management.relation.RelationNotification"
            astore 1 /* ntfClass */
        start local 1 // java.lang.String ntfClass
         5: .line 2519
            bipush 6
            anewarray java.lang.String
            dup
            iconst_0
         6: .line 2520
            ldc "jmx.relation.creation.basic"
            aastore
            dup
            iconst_1
         7: .line 2521
            ldc "jmx.relation.creation.mbean"
            aastore
            dup
            iconst_2
         8: .line 2522
            ldc "jmx.relation.update.basic"
            aastore
            dup
            iconst_3
         9: .line 2523
            ldc "jmx.relation.update.mbean"
            aastore
            dup
            iconst_4
        10: .line 2524
            ldc "jmx.relation.removal.basic"
            aastore
            dup
            iconst_5
        11: .line 2525
            ldc "jmx.relation.removal.mbean"
            aastore
        12: .line 2519
            astore 2 /* ntfTypes */
        start local 2 // java.lang.String[] ntfTypes
        13: .line 2528
            ldc "Sent when a relation is created, updated or deleted."
            astore 3 /* ntfDesc */
        start local 3 // java.lang.String ntfDesc
        14: .line 2531
            new javax.management.MBeanNotificationInfo
            dup
            aload 2 /* ntfTypes */
            aload 1 /* ntfClass */
            aload 3 /* ntfDesc */
            invokespecial javax.management.MBeanNotificationInfo.<init>:([Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
        15: .line 2530
            astore 4 /* ntfInfo */
        start local 4 // javax.management.MBeanNotificationInfo ntfInfo
        16: .line 2533
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
        17: .line 2534
            ldc "getNotificationInfo"
        18: .line 2533
            invokevirtual java.util.logging.Logger.exiting:(Ljava/lang/String;Ljava/lang/String;)V
        19: .line 2535
            iconst_1
            anewarray javax.management.MBeanNotificationInfo
            dup
            iconst_0
            aload 4 /* ntfInfo */
            aastore
            areturn
        end local 4 // javax.management.MBeanNotificationInfo ntfInfo
        end local 3 // java.lang.String ntfDesc
        end local 2 // java.lang.String[] ntfTypes
        end local 1 // java.lang.String ntfClass
        end local 0 // javax.management.relation.RelationService this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   20     0      this  Ljavax/management/relation/RelationService;
            5   20     1  ntfClass  Ljava/lang/String;
           13   20     2  ntfTypes  [Ljava/lang/String;
           14   20     3   ntfDesc  Ljava/lang/String;
           16   20     4   ntfInfo  Ljavax/management/MBeanNotificationInfo;

  private void addRelationTypeInt(javax.management.relation.RelationType);
    descriptor: (Ljavax/management/relation/RelationType;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // javax.management.relation.RelationService this
        start local 1 // javax.management.relation.RelationType relationTypeObj
         0: .line 2553
            aload 1 /* relationTypeObj */
            ifnonnull 3
         1: .line 2554
            ldc "Invalid parameter."
            astore 2 /* excMsg */
        start local 2 // java.lang.String excMsg
         2: .line 2555
            new java.lang.IllegalArgumentException
            dup
            aload 2 /* excMsg */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.lang.String excMsg
         3: .line 2558
      StackMap locals:
      StackMap stack:
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
         4: .line 2559
            ldc "addRelationTypeInt"
         5: .line 2558
            invokevirtual java.util.logging.Logger.entering:(Ljava/lang/String;Ljava/lang/String;)V
         6: .line 2561
            aload 1 /* relationTypeObj */
            invokeinterface javax.management.relation.RelationType.getRelationTypeName:()Ljava/lang/String;
            astore 2 /* relTypeName */
        start local 2 // java.lang.String relTypeName
         7: .line 2567
            aload 0 /* this */
            aload 2 /* relTypeName */
            invokevirtual javax.management.relation.RelationService.getRelationType:(Ljava/lang/String;)Ljavax/management/relation/RelationType;
            astore 3 /* relType */
        start local 3 // javax.management.relation.RelationType relType
         8: .line 2569
            aload 3 /* relType */
            ifnull 14
         9: .line 2570
            ldc "There is already a relation type in the Relation Service with name "
            astore 4 /* excMsg */
        start local 4 // java.lang.String excMsg
        10: .line 2571
            new java.lang.StringBuilder
            dup
            aload 4 /* excMsg */
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            astore 5 /* excMsgStrB */
        start local 5 // java.lang.StringBuilder excMsgStrB
        11: .line 2572
            aload 5 /* excMsgStrB */
            aload 2 /* relTypeName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        12: .line 2573
            new javax.management.relation.InvalidRelationTypeException
            dup
            aload 5 /* excMsgStrB */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial javax.management.relation.InvalidRelationTypeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 5 // java.lang.StringBuilder excMsgStrB
        end local 4 // java.lang.String excMsg
        end local 3 // javax.management.relation.RelationType relType
        13: .line 2576
      StackMap locals: javax.management.relation.RelationService javax.management.relation.RelationType java.lang.String
      StackMap stack: javax.management.relation.RelationTypeNotFoundException
            pop
        14: .line 2581
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myRelType2ObjMap:Ljava/util/Map;
            dup
            astore 3
            monitorenter
        15: .line 2582
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myRelType2ObjMap:Ljava/util/Map;
            aload 2 /* relTypeName */
            aload 1 /* relationTypeObj */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        16: .line 2581
            aload 3
            monitorexit
        17: goto 20
      StackMap locals: javax.management.relation.RelationService javax.management.relation.RelationType java.lang.String java.util.Map
      StackMap stack: java.lang.Throwable
        18: aload 3
            monitorexit
        19: athrow
        20: .line 2585
      StackMap locals:
      StackMap stack:
            aload 1 /* relationTypeObj */
            instanceof javax.management.relation.RelationTypeSupport
            ifeq 22
        21: .line 2586
            aload 1 /* relationTypeObj */
            checkcast javax.management.relation.RelationTypeSupport
            iconst_1
            invokevirtual javax.management.relation.RelationTypeSupport.setRelationServiceFlag:(Z)V
        22: .line 2589
      StackMap locals:
      StackMap stack:
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
        23: .line 2590
            ldc "addRelationTypeInt"
        24: .line 2589
            invokevirtual java.util.logging.Logger.exiting:(Ljava/lang/String;Ljava/lang/String;)V
        25: .line 2591
            return
        end local 2 // java.lang.String relTypeName
        end local 1 // javax.management.relation.RelationType relationTypeObj
        end local 0 // javax.management.relation.RelationService this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   26     0             this  Ljavax/management/relation/RelationService;
            0   26     1  relationTypeObj  Ljavax/management/relation/RelationType;
            2    3     2           excMsg  Ljava/lang/String;
            7   26     2      relTypeName  Ljava/lang/String;
            8   13     3          relType  Ljavax/management/relation/RelationType;
           10   13     4           excMsg  Ljava/lang/String;
           11   13     5       excMsgStrB  Ljava/lang/StringBuilder;
      Exception table:
        from    to  target  type
           7    13      13  Class javax.management.relation.RelationTypeNotFoundException
          15    17      18  any
          18    19      18  any
    Exceptions:
      throws java.lang.IllegalArgumentException, javax.management.relation.InvalidRelationTypeException
    MethodParameters:
                 Name  Flags
      relationTypeObj  

  javax.management.relation.RelationType getRelationType(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljavax/management/relation/RelationType;
    flags: (0x0000) 
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // javax.management.relation.RelationService this
        start local 1 // java.lang.String relationTypeName
         0: .line 2609
            aload 1 /* relationTypeName */
            ifnonnull 3
         1: .line 2610
            ldc "Invalid parameter."
            astore 2 /* excMsg */
        start local 2 // java.lang.String excMsg
         2: .line 2611
            new java.lang.IllegalArgumentException
            dup
            aload 2 /* excMsg */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.lang.String excMsg
         3: .line 2614
      StackMap locals:
      StackMap stack:
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
         4: .line 2615
            ldc "getRelationType"
            aload 1 /* relationTypeName */
         5: .line 2614
            invokevirtual java.util.logging.Logger.entering:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
         6: .line 2618
            aconst_null
            astore 2 /* relType */
        start local 2 // javax.management.relation.RelationType relType
         7: .line 2619
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myRelType2ObjMap:Ljava/util/Map;
            dup
            astore 3
            monitorenter
         8: .line 2620
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myRelType2ObjMap:Ljava/util/Map;
            aload 1 /* relationTypeName */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast javax.management.relation.RelationType
            astore 2 /* relType */
         9: .line 2619
            aload 3
            monitorexit
        10: goto 13
      StackMap locals: javax.management.relation.RelationService java.lang.String javax.management.relation.RelationType java.util.Map
      StackMap stack: java.lang.Throwable
        11: aload 3
            monitorexit
        12: athrow
        13: .line 2623
      StackMap locals:
      StackMap stack:
            aload 2 /* relType */
            ifnonnull 18
        14: .line 2624
            ldc "No relation type created in the Relation Service with the name "
            astore 3 /* excMsg */
        start local 3 // java.lang.String excMsg
        15: .line 2625
            new java.lang.StringBuilder
            dup
            aload 3 /* excMsg */
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            astore 4 /* excMsgStrB */
        start local 4 // java.lang.StringBuilder excMsgStrB
        16: .line 2626
            aload 4 /* excMsgStrB */
            aload 1 /* relationTypeName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        17: .line 2627
            new javax.management.relation.RelationTypeNotFoundException
            dup
            aload 4 /* excMsgStrB */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial javax.management.relation.RelationTypeNotFoundException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // java.lang.StringBuilder excMsgStrB
        end local 3 // java.lang.String excMsg
        18: .line 2630
      StackMap locals:
      StackMap stack:
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
        19: .line 2631
            ldc "getRelationType"
        20: .line 2630
            invokevirtual java.util.logging.Logger.exiting:(Ljava/lang/String;Ljava/lang/String;)V
        21: .line 2632
            aload 2 /* relType */
            areturn
        end local 2 // javax.management.relation.RelationType relType
        end local 1 // java.lang.String relationTypeName
        end local 0 // javax.management.relation.RelationService this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   22     0              this  Ljavax/management/relation/RelationService;
            0   22     1  relationTypeName  Ljava/lang/String;
            2    3     2            excMsg  Ljava/lang/String;
            7   22     2           relType  Ljavax/management/relation/RelationType;
           15   18     3            excMsg  Ljava/lang/String;
           16   18     4        excMsgStrB  Ljava/lang/StringBuilder;
      Exception table:
        from    to  target  type
           8    10      11  any
          11    12      11  any
    Exceptions:
      throws java.lang.IllegalArgumentException, javax.management.relation.RelationTypeNotFoundException
    MethodParameters:
                  Name  Flags
      relationTypeName  

  java.lang.Object getRelation(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x0000) 
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // javax.management.relation.RelationService this
        start local 1 // java.lang.String relationId
         0: .line 2653
            aload 1 /* relationId */
            ifnonnull 3
         1: .line 2654
            ldc "Invalid parameter."
            astore 2 /* excMsg */
        start local 2 // java.lang.String excMsg
         2: .line 2655
            new java.lang.IllegalArgumentException
            dup
            aload 2 /* excMsg */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.lang.String excMsg
         3: .line 2658
      StackMap locals:
      StackMap stack:
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
         4: .line 2659
            ldc "getRelation"
            aload 1 /* relationId */
         5: .line 2658
            invokevirtual java.util.logging.Logger.entering:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
         6: .line 2662
            aconst_null
            astore 2 /* rel */
        start local 2 // java.lang.Object rel
         7: .line 2663
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myRelId2ObjMap:Ljava/util/Map;
            dup
            astore 3
            monitorenter
         8: .line 2664
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myRelId2ObjMap:Ljava/util/Map;
            aload 1 /* relationId */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 2 /* rel */
         9: .line 2663
            aload 3
            monitorexit
        10: goto 13
      StackMap locals: javax.management.relation.RelationService java.lang.String java.lang.Object java.util.Map
      StackMap stack: java.lang.Throwable
        11: aload 3
            monitorexit
        12: athrow
        13: .line 2667
      StackMap locals:
      StackMap stack:
            aload 2 /* rel */
            ifnonnull 16
        14: .line 2668
            new java.lang.StringBuilder
            dup
            ldc "No relation associated to relation id "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* relationId */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* excMsg */
        start local 3 // java.lang.String excMsg
        15: .line 2669
            new javax.management.relation.RelationNotFoundException
            dup
            aload 3 /* excMsg */
            invokespecial javax.management.relation.RelationNotFoundException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // java.lang.String excMsg
        16: .line 2672
      StackMap locals:
      StackMap stack:
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
        17: .line 2673
            ldc "getRelation"
        18: .line 2672
            invokevirtual java.util.logging.Logger.exiting:(Ljava/lang/String;Ljava/lang/String;)V
        19: .line 2674
            aload 2 /* rel */
            areturn
        end local 2 // java.lang.Object rel
        end local 1 // java.lang.String relationId
        end local 0 // javax.management.relation.RelationService this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   20     0        this  Ljavax/management/relation/RelationService;
            0   20     1  relationId  Ljava/lang/String;
            2    3     2      excMsg  Ljava/lang/String;
            7   20     2         rel  Ljava/lang/Object;
           15   16     3      excMsg  Ljava/lang/String;
      Exception table:
        from    to  target  type
           8    10      11  any
          11    12      11  any
    Exceptions:
      throws java.lang.IllegalArgumentException, javax.management.relation.RelationNotFoundException
    MethodParameters:
            Name  Flags
      relationId  

  private boolean addNewMBeanReference(javax.management.ObjectName, java.lang.String, java.lang.String);
    descriptor: (Ljavax/management/ObjectName;Ljava/lang/String;Ljava/lang/String;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=8, args_size=4
        start local 0 // javax.management.relation.RelationService this
        start local 1 // javax.management.ObjectName objectName
        start local 2 // java.lang.String relationId
        start local 3 // java.lang.String roleName
         0: .line 2696
            aload 1 /* objectName */
            ifnull 3
         1: .line 2697
            aload 2 /* relationId */
            ifnull 3
         2: .line 2698
            aload 3 /* roleName */
            ifnonnull 5
         3: .line 2699
      StackMap locals:
      StackMap stack:
            ldc "Invalid parameter."
            astore 4 /* excMsg */
        start local 4 // java.lang.String excMsg
         4: .line 2700
            new java.lang.IllegalArgumentException
            dup
            aload 4 /* excMsg */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // java.lang.String excMsg
         5: .line 2703
      StackMap locals:
      StackMap stack:
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
         6: .line 2704
            ldc "addNewMBeanReference"
         7: .line 2705
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* objectName */
            aastore
            dup
            iconst_1
            aload 2 /* relationId */
            aastore
            dup
            iconst_2
            aload 3 /* roleName */
            aastore
         8: .line 2703
            invokevirtual java.util.logging.Logger.entering:(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
         9: .line 2707
            iconst_0
            istore 4 /* isNewFlag */
        start local 4 // boolean isNewFlag
        10: .line 2709
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myRefedMBeanObjName2RelIdsMap:Ljava/util/Map;
            dup
            astore 5
            monitorenter
        11: .line 2714
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myRefedMBeanObjName2RelIdsMap:Ljava/util/Map;
            aload 1 /* objectName */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Map
        12: .line 2713
            astore 6 /* mbeanRefMap */
        start local 6 // java.util.Map mbeanRefMap
        13: .line 2716
            aload 6 /* mbeanRefMap */
            ifnonnull 21
        14: .line 2719
            iconst_1
            istore 4 /* isNewFlag */
        15: .line 2723
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 7 /* roleNames */
        start local 7 // java.util.List roleNames
        16: .line 2724
            aload 7 /* roleNames */
            aload 3 /* roleName */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        17: .line 2727
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 6 /* mbeanRefMap */
        18: .line 2728
            aload 6 /* mbeanRefMap */
            aload 2 /* relationId */
            aload 7 /* roleNames */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        19: .line 2730
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myRefedMBeanObjName2RelIdsMap:Ljava/util/Map;
            aload 1 /* objectName */
            aload 6 /* mbeanRefMap */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 7 // java.util.List roleNames
        20: .line 2732
            goto 28
        21: .line 2736
      StackMap locals: int java.util.Map java.util.Map
      StackMap stack:
            aload 6 /* mbeanRefMap */
            aload 2 /* relationId */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.List
            astore 7 /* roleNames */
        start local 7 // java.util.List roleNames
        22: .line 2738
            aload 7 /* roleNames */
            ifnonnull 27
        23: .line 2743
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 7 /* roleNames */
        24: .line 2744
            aload 7 /* roleNames */
            aload 3 /* roleName */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        25: .line 2747
            aload 6 /* mbeanRefMap */
            aload 2 /* relationId */
            aload 7 /* roleNames */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        26: .line 2749
            goto 28
        27: .line 2753
      StackMap locals: java.util.List
      StackMap stack:
            aload 7 /* roleNames */
            aload 3 /* roleName */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 7 // java.util.List roleNames
        end local 6 // java.util.Map mbeanRefMap
        28: .line 2709
      StackMap locals:
      StackMap stack:
            aload 5
            monitorexit
        29: goto 32
      StackMap locals:
      StackMap stack: java.lang.Throwable
        30: aload 5
            monitorexit
        31: athrow
        32: .line 2758
      StackMap locals:
      StackMap stack:
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
        33: .line 2759
            ldc "addNewMBeanReference"
        34: .line 2758
            invokevirtual java.util.logging.Logger.exiting:(Ljava/lang/String;Ljava/lang/String;)V
        35: .line 2760
            iload 4 /* isNewFlag */
            ireturn
        end local 4 // boolean isNewFlag
        end local 3 // java.lang.String roleName
        end local 2 // java.lang.String relationId
        end local 1 // javax.management.ObjectName objectName
        end local 0 // javax.management.relation.RelationService this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   36     0         this  Ljavax/management/relation/RelationService;
            0   36     1   objectName  Ljavax/management/ObjectName;
            0   36     2   relationId  Ljava/lang/String;
            0   36     3     roleName  Ljava/lang/String;
            4    5     4       excMsg  Ljava/lang/String;
           10   36     4    isNewFlag  Z
           13   28     6  mbeanRefMap  Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
           16   20     7    roleNames  Ljava/util/List<Ljava/lang/String;>;
           22   28     7    roleNames  Ljava/util/List<Ljava/lang/String;>;
      Exception table:
        from    to  target  type
          11    29      30  any
          30    31      30  any
    Exceptions:
      throws java.lang.IllegalArgumentException
    MethodParameters:
            Name  Flags
      objectName  
      relationId  
      roleName    

  private boolean removeMBeanReference(javax.management.ObjectName, java.lang.String, java.lang.String, boolean);
    descriptor: (Ljavax/management/ObjectName;Ljava/lang/String;Ljava/lang/String;Z)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=10, args_size=5
        start local 0 // javax.management.relation.RelationService this
        start local 1 // javax.management.ObjectName objectName
        start local 2 // java.lang.String relationId
        start local 3 // java.lang.String roleName
        start local 4 // boolean allRolesFlag
         0: .line 2784
            aload 1 /* objectName */
            ifnull 3
         1: .line 2785
            aload 2 /* relationId */
            ifnull 3
         2: .line 2786
            aload 3 /* roleName */
            ifnonnull 5
         3: .line 2787
      StackMap locals:
      StackMap stack:
            ldc "Invalid parameter."
            astore 5 /* excMsg */
        start local 5 // java.lang.String excMsg
         4: .line 2788
            new java.lang.IllegalArgumentException
            dup
            aload 5 /* excMsg */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 5 // java.lang.String excMsg
         5: .line 2791
      StackMap locals:
      StackMap stack:
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
         6: .line 2792
            ldc "removeMBeanReference"
         7: .line 2793
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* objectName */
            aastore
            dup
            iconst_1
            aload 2 /* relationId */
            aastore
            dup
            iconst_2
            aload 3 /* roleName */
            aastore
            dup
            iconst_3
            iload 4 /* allRolesFlag */
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            aastore
         8: .line 2791
            invokevirtual java.util.logging.Logger.entering:(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
         9: .line 2795
            iconst_0
            istore 5 /* noLongerRefFlag */
        start local 5 // boolean noLongerRefFlag
        10: .line 2797
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myRefedMBeanObjName2RelIdsMap:Ljava/util/Map;
            dup
            astore 6
            monitorenter
        11: .line 2805
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myRefedMBeanObjName2RelIdsMap:Ljava/util/Map;
            aload 1 /* objectName */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.HashMap
        12: .line 2804
            astore 7 /* mbeanRefMap */
        start local 7 // java.util.HashMap mbeanRefMap
        13: .line 2807
            aload 7 /* mbeanRefMap */
            ifnonnull 19
        14: .line 2809
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
        15: .line 2810
            ldc "removeMBeanReference"
        16: .line 2809
            invokevirtual java.util.logging.Logger.exiting:(Ljava/lang/String;Ljava/lang/String;)V
        17: .line 2811
            aload 6
            monitorexit
        18: iconst_1
            ireturn
        19: .line 2814
      StackMap locals: int java.util.Map java.util.HashMap
      StackMap stack:
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 8 /* roleNames */
        start local 8 // java.util.ArrayList roleNames
        20: .line 2815
            iload 4 /* allRolesFlag */
            ifne 25
        21: .line 2818
            aload 7 /* mbeanRefMap */
            aload 2 /* relationId */
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.ArrayList
            astore 8 /* roleNames */
        22: .line 2821
            aload 8 /* roleNames */
            aload 3 /* roleName */
            invokevirtual java.util.ArrayList.indexOf:(Ljava/lang/Object;)I
            istore 9 /* obsRefIdx */
        start local 9 // int obsRefIdx
        23: .line 2822
            iload 9 /* obsRefIdx */
            iconst_m1
            if_icmpeq 25
        24: .line 2823
            aload 8 /* roleNames */
            iload 9 /* obsRefIdx */
            invokevirtual java.util.ArrayList.remove:(I)Ljava/lang/Object;
            pop
        end local 9 // int obsRefIdx
        25: .line 2829
      StackMap locals: java.util.ArrayList
      StackMap stack:
            aload 8 /* roleNames */
            invokevirtual java.util.ArrayList.isEmpty:()Z
            ifne 26
            iload 4 /* allRolesFlag */
            ifeq 27
        26: .line 2832
      StackMap locals:
      StackMap stack:
            aload 7 /* mbeanRefMap */
            aload 2 /* relationId */
            invokevirtual java.util.HashMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        27: .line 2836
      StackMap locals:
      StackMap stack:
            aload 7 /* mbeanRefMap */
            invokevirtual java.util.HashMap.isEmpty:()Z
            ifeq 30
        28: .line 2838
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myRefedMBeanObjName2RelIdsMap:Ljava/util/Map;
            aload 1 /* objectName */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        29: .line 2839
            iconst_1
            istore 5 /* noLongerRefFlag */
        end local 8 // java.util.ArrayList roleNames
        end local 7 // java.util.HashMap mbeanRefMap
        30: .line 2797
      StackMap locals:
      StackMap stack:
            aload 6
            monitorexit
        31: goto 34
      StackMap locals:
      StackMap stack: java.lang.Throwable
        32: aload 6
            monitorexit
        33: athrow
        34: .line 2843
      StackMap locals:
      StackMap stack:
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
        35: .line 2844
            ldc "removeMBeanReference"
        36: .line 2843
            invokevirtual java.util.logging.Logger.exiting:(Ljava/lang/String;Ljava/lang/String;)V
        37: .line 2845
            iload 5 /* noLongerRefFlag */
            ireturn
        end local 5 // boolean noLongerRefFlag
        end local 4 // boolean allRolesFlag
        end local 3 // java.lang.String roleName
        end local 2 // java.lang.String relationId
        end local 1 // javax.management.ObjectName objectName
        end local 0 // javax.management.relation.RelationService this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   38     0             this  Ljavax/management/relation/RelationService;
            0   38     1       objectName  Ljavax/management/ObjectName;
            0   38     2       relationId  Ljava/lang/String;
            0   38     3         roleName  Ljava/lang/String;
            0   38     4     allRolesFlag  Z
            4    5     5           excMsg  Ljava/lang/String;
           10   38     5  noLongerRefFlag  Z
           13   30     7      mbeanRefMap  Ljava/util/HashMap;
           20   30     8        roleNames  Ljava/util/ArrayList;
           23   25     9        obsRefIdx  I
      Exception table:
        from    to  target  type
          11    18      32  any
          19    31      32  any
          32    33      32  any
    Exceptions:
      throws java.lang.IllegalArgumentException
    MethodParameters:
              Name  Flags
      objectName    
      relationId    
      roleName      
      allRolesFlag  

  private void updateUnregistrationListener(java.util.List, java.util.List);
    descriptor: (Ljava/util/List;Ljava/util/List;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=7, args_size=3
        start local 0 // javax.management.relation.RelationService this
        start local 1 // java.util.List newRefList
        start local 2 // java.util.List obsoleteRefList
         0: .line 2862
            aload 1 /* newRefList */
            ifnull 3
            aload 2 /* obsoleteRefList */
            ifnull 3
         1: .line 2863
            aload 1 /* newRefList */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 3
            aload 2 /* obsoleteRefList */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 3
         2: .line 2865
            return
         3: .line 2869
      StackMap locals:
      StackMap stack:
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
         4: .line 2870
            ldc "updateUnregistrationListener"
         5: .line 2871
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* newRefList */
            aastore
            dup
            iconst_1
            aload 2 /* obsoleteRefList */
            aastore
         6: .line 2869
            invokevirtual java.util.logging.Logger.entering:(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
         7: .line 2874
            aload 0 /* this */
            invokevirtual javax.management.relation.RelationService.isActive:()V
         8: .line 2876
            aload 1 /* newRefList */
            ifnonnull 9
            aload 2 /* obsoleteRefList */
            ifnull 43
         9: .line 2878
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 3 /* newListenerFlag */
        start local 3 // boolean newListenerFlag
        10: .line 2879
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myUnregNtfFilter:Ljavax/management/relation/MBeanServerNotificationFilter;
            ifnonnull 13
        11: .line 2881
            aload 0 /* this */
            new javax.management.relation.MBeanServerNotificationFilter
            dup
            invokespecial javax.management.relation.MBeanServerNotificationFilter.<init>:()V
            putfield javax.management.relation.RelationService.myUnregNtfFilter:Ljavax/management/relation/MBeanServerNotificationFilter;
        12: .line 2882
            iconst_1
            istore 3 /* newListenerFlag */
        13: .line 2885
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myUnregNtfFilter:Ljavax/management/relation/MBeanServerNotificationFilter;
            dup
            astore 4
            monitorenter
        14: .line 2888
            aload 1 /* newRefList */
            ifnull 21
        15: .line 2889
            aload 1 /* newRefList */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5 /* newRefIter */
        start local 5 // java.util.Iterator newRefIter
        16: .line 2890
            goto 20
        17: .line 2893
      StackMap locals: javax.management.relation.MBeanServerNotificationFilter java.util.Iterator
      StackMap stack:
            aload 5 /* newRefIter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.management.ObjectName
        18: .line 2892
            astore 6 /* newObjName */
        start local 6 // javax.management.ObjectName newObjName
        19: .line 2894
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myUnregNtfFilter:Ljavax/management/relation/MBeanServerNotificationFilter;
            aload 6 /* newObjName */
            invokevirtual javax.management.relation.MBeanServerNotificationFilter.enableObjectName:(Ljavax/management/ObjectName;)V
        end local 6 // javax.management.ObjectName newObjName
        20: .line 2890
      StackMap locals:
      StackMap stack:
            aload 5 /* newRefIter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 17
        end local 5 // java.util.Iterator newRefIter
        21: .line 2898
      StackMap locals:
      StackMap stack:
            aload 2 /* obsoleteRefList */
            ifnull 28
        22: .line 2900
            aload 2 /* obsoleteRefList */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5 /* obsRefIter */
        start local 5 // java.util.Iterator obsRefIter
        23: .line 2901
            goto 27
        24: .line 2904
      StackMap locals: java.util.Iterator
      StackMap stack:
            aload 5 /* obsRefIter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.management.ObjectName
        25: .line 2903
            astore 6 /* obsObjName */
        start local 6 // javax.management.ObjectName obsObjName
        26: .line 2905
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myUnregNtfFilter:Ljavax/management/relation/MBeanServerNotificationFilter;
            aload 6 /* obsObjName */
            invokevirtual javax.management.relation.MBeanServerNotificationFilter.disableObjectName:(Ljavax/management/ObjectName;)V
        end local 6 // javax.management.ObjectName obsObjName
        27: .line 2901
      StackMap locals:
      StackMap stack:
            aload 5 /* obsRefIter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 24
        end local 5 // java.util.Iterator obsRefIter
        28: .line 2910
      StackMap locals:
      StackMap stack:
            iload 3 /* newListenerFlag */
            ifeq 39
        29: .line 2912
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myMBeanServer:Ljavax/management/MBeanServer;
        30: .line 2913
            getstatic javax.management.MBeanServerDelegate.DELEGATE_NAME:Ljavax/management/ObjectName;
        31: .line 2914
            aload 0 /* this */
        32: .line 2915
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myUnregNtfFilter:Ljavax/management/relation/MBeanServerNotificationFilter;
        33: .line 2916
            aconst_null
        34: .line 2912
            invokeinterface javax.management.MBeanServer.addNotificationListener:(Ljavax/management/ObjectName;Ljavax/management/NotificationListener;Ljavax/management/NotificationFilter;Ljava/lang/Object;)V
        35: .line 2917
            goto 39
      StackMap locals:
      StackMap stack: javax.management.InstanceNotFoundException
        36: astore 5 /* exc */
        start local 5 // javax.management.InstanceNotFoundException exc
        37: .line 2919
            new javax.management.relation.RelationServiceNotRegisteredException
            dup
            aload 5 /* exc */
            invokevirtual javax.management.InstanceNotFoundException.getMessage:()Ljava/lang/String;
        38: .line 2918
            invokespecial javax.management.relation.RelationServiceNotRegisteredException.<init>:(Ljava/lang/String;)V
            athrow
        end local 5 // javax.management.InstanceNotFoundException exc
        39: .line 2885
      StackMap locals:
      StackMap stack:
            aload 4
            monitorexit
        40: goto 43
      StackMap locals:
      StackMap stack: java.lang.Throwable
        41: aload 4
            monitorexit
        42: athrow
        end local 3 // boolean newListenerFlag
        43: .line 2965
      StackMap locals:
      StackMap stack:
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
        44: .line 2966
            ldc "updateUnregistrationListener"
        45: .line 2965
            invokevirtual java.util.logging.Logger.exiting:(Ljava/lang/String;Ljava/lang/String;)V
        46: .line 2967
            return
        end local 2 // java.util.List obsoleteRefList
        end local 1 // java.util.List newRefList
        end local 0 // javax.management.relation.RelationService this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   47     0             this  Ljavax/management/relation/RelationService;
            0   47     1       newRefList  Ljava/util/List;
            0   47     2  obsoleteRefList  Ljava/util/List;
           10   43     3  newListenerFlag  Z
           16   21     5       newRefIter  Ljava/util/Iterator;
           19   20     6       newObjName  Ljavax/management/ObjectName;
           23   28     5       obsRefIter  Ljava/util/Iterator;
           26   27     6       obsObjName  Ljavax/management/ObjectName;
           37   39     5              exc  Ljavax/management/InstanceNotFoundException;
      Exception table:
        from    to  target  type
          29    35      36  Class javax.management.InstanceNotFoundException
          14    40      41  any
          41    42      41  any
    Exceptions:
      throws javax.management.relation.RelationServiceNotRegisteredException
    MethodParameters:
                 Name  Flags
      newRefList       
      obsoleteRefList  

  private void addRelationInt(boolean, javax.management.relation.RelationSupport, javax.management.ObjectName, java.lang.String, java.lang.String, javax.management.relation.RoleList);
    descriptor: (ZLjavax/management/relation/RelationSupport;Ljavax/management/ObjectName;Ljava/lang/String;Ljava/lang/String;Ljavax/management/relation/RoleList;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=17, args_size=7
        start local 0 // javax.management.relation.RelationService this
        start local 1 // boolean relationBaseFlag
        start local 2 // javax.management.relation.RelationSupport relationObj
        start local 3 // javax.management.ObjectName relationObjName
        start local 4 // java.lang.String relationId
        start local 5 // java.lang.String relationTypeName
        start local 6 // javax.management.relation.RoleList roleList
         0: .line 3020
            aload 4 /* relationId */
            ifnull 8
         1: .line 3021
            aload 5 /* relationTypeName */
            ifnull 8
         2: .line 3022
            iload 1 /* relationBaseFlag */
            ifeq 5
         3: .line 3023
            aload 2 /* relationObj */
            ifnull 8
         4: .line 3024
            aload 3 /* relationObjName */
            ifnonnull 8
         5: .line 3025
      StackMap locals:
      StackMap stack:
            iload 1 /* relationBaseFlag */
            ifne 10
         6: .line 3026
            aload 3 /* relationObjName */
            ifnull 8
         7: .line 3027
            aload 2 /* relationObj */
            ifnull 10
         8: .line 3028
      StackMap locals:
      StackMap stack:
            ldc "Invalid parameter."
            astore 7 /* excMsg */
        start local 7 // java.lang.String excMsg
         9: .line 3029
            new java.lang.IllegalArgumentException
            dup
            aload 7 /* excMsg */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 7 // java.lang.String excMsg
        10: .line 3032
      StackMap locals:
      StackMap stack:
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
        11: .line 3033
            ldc "addRelationInt"
            bipush 6
            anewarray java.lang.Object
            dup
            iconst_0
            iload 1 /* relationBaseFlag */
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            aastore
            dup
            iconst_1
            aload 2 /* relationObj */
            aastore
            dup
            iconst_2
        12: .line 3034
            aload 3 /* relationObjName */
            aastore
            dup
            iconst_3
            aload 4 /* relationId */
            aastore
            dup
            iconst_4
            aload 5 /* relationTypeName */
            aastore
            dup
            iconst_5
            aload 6 /* roleList */
            aastore
        13: .line 3032
            invokevirtual java.util.logging.Logger.entering:(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
        14: .line 3037
            aload 0 /* this */
            invokevirtual javax.management.relation.RelationService.isActive:()V
        15: .line 3042
            aload 0 /* this */
            aload 4 /* relationId */
            invokevirtual javax.management.relation.RelationService.getRelation:(Ljava/lang/String;)Ljava/lang/Object;
            astore 7 /* rel */
        start local 7 // java.lang.Object rel
        16: .line 3044
            aload 7 /* rel */
            ifnull 22
        17: .line 3046
            ldc "There is already a relation with id "
            astore 8 /* excMsg */
        start local 8 // java.lang.String excMsg
        18: .line 3047
            new java.lang.StringBuilder
            dup
            aload 8 /* excMsg */
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            astore 9 /* excMsgStrB */
        start local 9 // java.lang.StringBuilder excMsgStrB
        19: .line 3048
            aload 9 /* excMsgStrB */
            aload 4 /* relationId */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        20: .line 3049
            new javax.management.relation.InvalidRelationIdException
            dup
            aload 9 /* excMsgStrB */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial javax.management.relation.InvalidRelationIdException.<init>:(Ljava/lang/String;)V
            athrow
        end local 9 // java.lang.StringBuilder excMsgStrB
        end local 8 // java.lang.String excMsg
        end local 7 // java.lang.Object rel
        21: .line 3051
      StackMap locals:
      StackMap stack: javax.management.relation.RelationNotFoundException
            pop
        22: .line 3057
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 5 /* relationTypeName */
            invokevirtual javax.management.relation.RelationService.getRelationType:(Ljava/lang/String;)Ljavax/management/relation/RelationType;
            astore 7 /* relType */
        start local 7 // javax.management.relation.RelationType relType
        23: .line 3066
            aload 7 /* relType */
            invokeinterface javax.management.relation.RelationType.getRoleInfos:()Ljava/util/List;
            checkcast java.util.ArrayList
            invokevirtual java.util.ArrayList.clone:()Ljava/lang/Object;
        24: .line 3065
            checkcast java.util.ArrayList
            astore 8 /* roleInfoList */
        start local 8 // java.util.ArrayList roleInfoList
        25: .line 3068
            aload 6 /* roleList */
            ifnull 49
        26: .line 3070
            aload 6 /* roleList */
            invokevirtual javax.management.relation.RoleList.iterator:()Ljava/util/Iterator;
            astore 9 /* roleIter */
        start local 9 // java.util.Iterator roleIter
        27: .line 3071
            goto 48
        28: .line 3073
      StackMap locals: javax.management.relation.RelationType java.util.ArrayList java.util.Iterator
      StackMap stack:
            aload 9 /* roleIter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.management.relation.Role
            astore 10 /* currRole */
        start local 10 // javax.management.relation.Role currRole
        29: .line 3074
            aload 10 /* currRole */
            invokevirtual javax.management.relation.Role.getRoleName:()Ljava/lang/String;
            astore 11 /* currRoleName */
        start local 11 // java.lang.String currRoleName
        30: .line 3076
            aload 10 /* currRole */
            invokevirtual javax.management.relation.Role.getRoleValue:()Ljava/util/List;
        31: .line 3075
            checkcast java.util.ArrayList
            astore 12 /* currRoleValue */
        start local 12 // java.util.ArrayList currRoleValue
        32: .line 3080
            aconst_null
            astore 13 /* roleInfo */
        start local 13 // javax.management.relation.RoleInfo roleInfo
        33: .line 3082
            aload 7 /* relType */
            aload 11 /* currRoleName */
            invokeinterface javax.management.relation.RelationType.getRoleInfo:(Ljava/lang/String;)Ljavax/management/relation/RoleInfo;
            astore 13 /* roleInfo */
        34: .line 3083
            goto 37
      StackMap locals: javax.management.relation.RelationService int javax.management.relation.RelationSupport javax.management.ObjectName java.lang.String java.lang.String javax.management.relation.RoleList javax.management.relation.RelationType java.util.ArrayList java.util.Iterator javax.management.relation.Role java.lang.String java.util.ArrayList javax.management.relation.RoleInfo
      StackMap stack: javax.management.relation.RoleInfoNotFoundException
        35: astore 14 /* exc */
        start local 14 // javax.management.relation.RoleInfoNotFoundException exc
        36: .line 3084
            new javax.management.relation.RoleNotFoundException
            dup
            aload 14 /* exc */
            invokevirtual javax.management.relation.RoleInfoNotFoundException.getMessage:()Ljava/lang/String;
            invokespecial javax.management.relation.RoleNotFoundException.<init>:(Ljava/lang/String;)V
            athrow
        end local 14 // javax.management.relation.RoleInfoNotFoundException exc
        37: .line 3088
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_2
        38: .line 3089
            aload 11 /* currRoleName */
        39: .line 3090
            aload 12 /* currRoleValue */
        40: .line 3091
            aload 13 /* roleInfo */
        41: .line 3092
            iconst_0
        42: .line 3088
            invokevirtual javax.management.relation.RelationService.checkRoleInt:(ILjava/lang/String;Ljava/util/List;Ljavax/management/relation/RoleInfo;Z)Ljava/lang/Integer;
            astore 14 /* status */
        start local 14 // java.lang.Integer status
        43: .line 3093
            aload 14 /* status */
            invokevirtual java.lang.Integer.intValue:()I
            istore 15 /* pbType */
        start local 15 // int pbType
        44: .line 3094
            iload 15 /* pbType */
            ifeq 46
        45: .line 3097
            iload 15 /* pbType */
            aload 11 /* currRoleName */
            invokestatic javax.management.relation.RelationService.throwRoleProblemException:(ILjava/lang/String;)V
        46: .line 3102
      StackMap locals: java.lang.Integer int
      StackMap stack:
            aload 8 /* roleInfoList */
            aload 13 /* roleInfo */
            invokevirtual java.util.ArrayList.indexOf:(Ljava/lang/Object;)I
            istore 16 /* roleInfoIdx */
        start local 16 // int roleInfoIdx
        47: .line 3104
            aload 8 /* roleInfoList */
            iload 16 /* roleInfoIdx */
            invokevirtual java.util.ArrayList.remove:(I)Ljava/lang/Object;
            pop
        end local 16 // int roleInfoIdx
        end local 15 // int pbType
        end local 14 // java.lang.Integer status
        end local 13 // javax.management.relation.RoleInfo roleInfo
        end local 12 // java.util.ArrayList currRoleValue
        end local 11 // java.lang.String currRoleName
        end local 10 // javax.management.relation.Role currRole
        48: .line 3071
      StackMap locals: javax.management.relation.RelationService int javax.management.relation.RelationSupport javax.management.ObjectName java.lang.String java.lang.String javax.management.relation.RoleList javax.management.relation.RelationType java.util.ArrayList java.util.Iterator
      StackMap stack:
            aload 9 /* roleIter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 28
        end local 9 // java.util.Iterator roleIter
        49: .line 3110
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* relationBaseFlag */
        50: .line 3111
            aload 2 /* relationObj */
        51: .line 3112
            aload 3 /* relationObjName */
        52: .line 3113
            aload 4 /* relationId */
        53: .line 3114
            aload 5 /* relationTypeName */
        54: .line 3115
            aload 8 /* roleInfoList */
        55: .line 3110
            invokevirtual javax.management.relation.RelationService.initializeMissingRoles:(ZLjavax/management/relation/RelationSupport;Ljavax/management/ObjectName;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)V
        56: .line 3121
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myRelId2ObjMap:Ljava/util/Map;
            dup
            astore 9
            monitorenter
        57: .line 3122
            iload 1 /* relationBaseFlag */
            ifeq 60
        58: .line 3124
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myRelId2ObjMap:Ljava/util/Map;
            aload 4 /* relationId */
            aload 2 /* relationObj */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        59: .line 3125
            goto 61
        60: .line 3126
      StackMap locals: java.util.Map
      StackMap stack:
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myRelId2ObjMap:Ljava/util/Map;
            aload 4 /* relationId */
            aload 3 /* relationObjName */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        61: .line 3121
      StackMap locals:
      StackMap stack:
            aload 9
            monitorexit
        62: goto 65
      StackMap locals:
      StackMap stack: java.lang.Throwable
        63: aload 9
            monitorexit
        64: athrow
        65: .line 3131
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myRelId2RelTypeMap:Ljava/util/Map;
            dup
            astore 9
            monitorenter
        66: .line 3132
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myRelId2RelTypeMap:Ljava/util/Map;
            aload 4 /* relationId */
        67: .line 3133
            aload 5 /* relationTypeName */
        68: .line 3132
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        69: .line 3131
            aload 9
            monitorexit
        70: goto 73
      StackMap locals: javax.management.relation.RelationService int javax.management.relation.RelationSupport javax.management.ObjectName java.lang.String java.lang.String javax.management.relation.RoleList javax.management.relation.RelationType java.util.ArrayList java.util.Map
      StackMap stack: java.lang.Throwable
        71: aload 9
            monitorexit
        72: athrow
        73: .line 3137
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myRelType2RelIdsMap:Ljava/util/Map;
            dup
            astore 9
            monitorenter
        74: .line 3139
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myRelType2RelIdsMap:Ljava/util/Map;
            aload 5 /* relationTypeName */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.List
        75: .line 3138
            astore 10 /* relIdList */
        start local 10 // java.util.List relIdList
        76: .line 3140
            iconst_0
            istore 11 /* firstRelFlag */
        start local 11 // boolean firstRelFlag
        77: .line 3141
            aload 10 /* relIdList */
            ifnonnull 80
        78: .line 3142
            iconst_1
            istore 11 /* firstRelFlag */
        79: .line 3143
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 10 /* relIdList */
        80: .line 3145
      StackMap locals: java.util.Map java.util.List int
      StackMap stack:
            aload 10 /* relIdList */
            aload 4 /* relationId */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        81: .line 3146
            iload 11 /* firstRelFlag */
            ifeq 83
        82: .line 3147
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myRelType2RelIdsMap:Ljava/util/Map;
            aload 5 /* relationTypeName */
            aload 10 /* relIdList */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 11 // boolean firstRelFlag
        end local 10 // java.util.List relIdList
        83: .line 3137
      StackMap locals:
      StackMap stack:
            aload 9
            monitorexit
        84: goto 87
      StackMap locals:
      StackMap stack: java.lang.Throwable
        85: aload 9
            monitorexit
        86: athrow
        87: .line 3155
      StackMap locals:
      StackMap stack:
            aload 6 /* roleList */
            invokevirtual javax.management.relation.RoleList.iterator:()Ljava/util/Iterator;
            astore 9 /* roleIter */
        start local 9 // java.util.Iterator roleIter
        88: .line 3156
            goto 94
        89: .line 3157
      StackMap locals: java.util.Iterator
      StackMap stack:
            aload 9 /* roleIter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.management.relation.Role
            astore 10 /* currRole */
        start local 10 // javax.management.relation.Role currRole
        90: .line 3160
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 11 /* dummyList */
        start local 11 // java.util.List dummyList
        91: .line 3164
            aload 0 /* this */
            aload 4 /* relationId */
            aload 10 /* currRole */
            aload 11 /* dummyList */
            invokevirtual javax.management.relation.RelationService.updateRoleMap:(Ljava/lang/String;Ljavax/management/relation/Role;Ljava/util/List;)V
        92: .line 3166
            goto 94
      StackMap locals: javax.management.relation.RelationService int javax.management.relation.RelationSupport javax.management.ObjectName java.lang.String java.lang.String javax.management.relation.RoleList javax.management.relation.RelationType java.util.ArrayList java.util.Iterator javax.management.relation.Role java.util.List
      StackMap stack: javax.management.relation.RelationNotFoundException
        93: pop
        end local 11 // java.util.List dummyList
        end local 10 // javax.management.relation.Role currRole
        94: .line 3156
      StackMap locals:
      StackMap stack:
            aload 9 /* roleIter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 89
        end local 9 // java.util.Iterator roleIter
        95: .line 3174
            aload 0 /* this */
            aload 4 /* relationId */
            invokevirtual javax.management.relation.RelationService.sendRelationCreationNotification:(Ljava/lang/String;)V
        96: .line 3176
            goto 98
      StackMap locals: javax.management.relation.RelationService int javax.management.relation.RelationSupport javax.management.ObjectName java.lang.String java.lang.String javax.management.relation.RoleList javax.management.relation.RelationType java.util.ArrayList
      StackMap stack: javax.management.relation.RelationNotFoundException
        97: pop
        98: .line 3180
      StackMap locals:
      StackMap stack:
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
        99: .line 3181
            ldc "addRelationInt"
       100: .line 3180
            invokevirtual java.util.logging.Logger.exiting:(Ljava/lang/String;Ljava/lang/String;)V
       101: .line 3182
            return
        end local 8 // java.util.ArrayList roleInfoList
        end local 7 // javax.management.relation.RelationType relType
        end local 6 // javax.management.relation.RoleList roleList
        end local 5 // java.lang.String relationTypeName
        end local 4 // java.lang.String relationId
        end local 3 // javax.management.ObjectName relationObjName
        end local 2 // javax.management.relation.RelationSupport relationObj
        end local 1 // boolean relationBaseFlag
        end local 0 // javax.management.relation.RelationService this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0  102     0              this  Ljavax/management/relation/RelationService;
            0  102     1  relationBaseFlag  Z
            0  102     2       relationObj  Ljavax/management/relation/RelationSupport;
            0  102     3   relationObjName  Ljavax/management/ObjectName;
            0  102     4        relationId  Ljava/lang/String;
            0  102     5  relationTypeName  Ljava/lang/String;
            0  102     6          roleList  Ljavax/management/relation/RoleList;
            9   10     7            excMsg  Ljava/lang/String;
           16   21     7               rel  Ljava/lang/Object;
           18   21     8            excMsg  Ljava/lang/String;
           19   21     9        excMsgStrB  Ljava/lang/StringBuilder;
           23  102     7           relType  Ljavax/management/relation/RelationType;
           25  102     8      roleInfoList  Ljava/util/ArrayList;
           27   49     9          roleIter  Ljava/util/Iterator;
           29   48    10          currRole  Ljavax/management/relation/Role;
           30   48    11      currRoleName  Ljava/lang/String;
           32   48    12     currRoleValue  Ljava/util/ArrayList;
           33   48    13          roleInfo  Ljavax/management/relation/RoleInfo;
           36   37    14               exc  Ljavax/management/relation/RoleInfoNotFoundException;
           43   48    14            status  Ljava/lang/Integer;
           44   48    15            pbType  I
           47   48    16       roleInfoIdx  I
           76   83    10         relIdList  Ljava/util/List<Ljava/lang/String;>;
           77   83    11      firstRelFlag  Z
           88   95     9          roleIter  Ljava/util/Iterator;
           90   94    10          currRole  Ljavax/management/relation/Role;
           91   94    11         dummyList  Ljava/util/List<Ljavax/management/ObjectName;>;
      Exception table:
        from    to  target  type
          15    21      21  Class javax.management.relation.RelationNotFoundException
          33    34      35  Class javax.management.relation.RoleInfoNotFoundException
          57    62      63  any
          63    64      63  any
          66    70      71  any
          71    72      71  any
          74    84      85  any
          85    86      85  any
          91    92      93  Class javax.management.relation.RelationNotFoundException
          95    96      97  Class javax.management.relation.RelationNotFoundException
    Exceptions:
      throws java.lang.IllegalArgumentException, javax.management.relation.RelationServiceNotRegisteredException, javax.management.relation.RoleNotFoundException, javax.management.relation.InvalidRelationIdException, javax.management.relation.RelationTypeNotFoundException, javax.management.relation.InvalidRoleValueException
    MethodParameters:
                  Name  Flags
      relationBaseFlag  
      relationObj       
      relationObjName   
      relationId        
      relationTypeName  
      roleList          

  private java.lang.Integer checkRoleInt(int, java.lang.String, java.util.List, javax.management.relation.RoleInfo, boolean);
    descriptor: (ILjava/lang/String;Ljava/util/List;Ljavax/management/relation/RoleInfo;Z)Ljava/lang/Integer;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=14, args_size=6
        start local 0 // javax.management.relation.RelationService this
        start local 1 // int chkType
        start local 2 // java.lang.String roleName
        start local 3 // java.util.List roleValue
        start local 4 // javax.management.relation.RoleInfo roleInfo
        start local 5 // boolean writeChkFlag
         0: .line 3214
            aload 2 /* roleName */
            ifnull 3
         1: .line 3215
            aload 4 /* roleInfo */
            ifnull 3
         2: .line 3216
            iload 1 /* chkType */
            iconst_2
            if_icmpne 5
            aload 3 /* roleValue */
            ifnonnull 5
         3: .line 3217
      StackMap locals:
      StackMap stack:
            ldc "Invalid parameter."
            astore 6 /* excMsg */
        start local 6 // java.lang.String excMsg
         4: .line 3218
            new java.lang.IllegalArgumentException
            dup
            aload 6 /* excMsg */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 6 // java.lang.String excMsg
         5: .line 3221
      StackMap locals:
      StackMap stack:
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
         6: .line 3222
            ldc "checkRoleInt"
            iconst_5
            anewarray java.lang.Object
            dup
            iconst_0
            iload 1 /* chkType */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            aload 2 /* roleName */
            aastore
            dup
            iconst_2
         7: .line 3223
            aload 3 /* roleValue */
            aastore
            dup
            iconst_3
            aload 4 /* roleInfo */
            aastore
            dup
            iconst_4
            iload 5 /* writeChkFlag */
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            aastore
         8: .line 3221
            invokevirtual java.util.logging.Logger.entering:(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
         9: .line 3226
            aload 4 /* roleInfo */
            invokevirtual javax.management.relation.RoleInfo.getName:()Ljava/lang/String;
            astore 6 /* expName */
        start local 6 // java.lang.String expName
        10: .line 3227
            aload 2 /* roleName */
            aload 6 /* expName */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 15
        11: .line 3228
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
        12: .line 3229
            ldc "checkRoleInt"
        13: .line 3228
            invokevirtual java.util.logging.Logger.exiting:(Ljava/lang/String;Ljava/lang/String;)V
        14: .line 3230
            new java.lang.Integer
            dup
            iconst_1
            invokespecial java.lang.Integer.<init>:(I)V
            areturn
        15: .line 3234
      StackMap locals: java.lang.String
      StackMap stack:
            iload 1 /* chkType */
            iconst_1
            if_icmpne 26
        16: .line 3235
            aload 4 /* roleInfo */
            invokevirtual javax.management.relation.RoleInfo.isReadable:()Z
            istore 7 /* isReadable */
        start local 7 // boolean isReadable
        17: .line 3236
            iload 7 /* isReadable */
            ifne 22
        18: .line 3237
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
        19: .line 3238
            ldc "checkRoleInt"
        20: .line 3237
            invokevirtual java.util.logging.Logger.exiting:(Ljava/lang/String;Ljava/lang/String;)V
        21: .line 3239
            new java.lang.Integer
            dup
            iconst_2
            invokespecial java.lang.Integer.<init>:(I)V
            areturn
        22: .line 3242
      StackMap locals: int
      StackMap stack:
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
        23: .line 3243
            ldc "checkRoleInt"
        24: .line 3242
            invokevirtual java.util.logging.Logger.exiting:(Ljava/lang/String;Ljava/lang/String;)V
        25: .line 3244
            new java.lang.Integer
            dup
            iconst_0
            invokespecial java.lang.Integer.<init>:(I)V
            areturn
        end local 7 // boolean isReadable
        26: .line 3249
      StackMap locals:
      StackMap stack:
            iload 5 /* writeChkFlag */
            ifeq 33
        27: .line 3250
            aload 4 /* roleInfo */
            invokevirtual javax.management.relation.RoleInfo.isWritable:()Z
            istore 7 /* isWritable */
        start local 7 // boolean isWritable
        28: .line 3251
            iload 7 /* isWritable */
            ifne 33
        29: .line 3252
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
        30: .line 3253
            ldc "checkRoleInt"
        31: .line 3252
            invokevirtual java.util.logging.Logger.exiting:(Ljava/lang/String;Ljava/lang/String;)V
        32: .line 3254
            new java.lang.Integer
            dup
            iconst_3
            invokespecial java.lang.Integer.<init>:(I)V
            areturn
        end local 7 // boolean isWritable
        33: .line 3258
      StackMap locals:
      StackMap stack:
            aload 3 /* roleValue */
            invokeinterface java.util.List.size:()I
            istore 7 /* refNbr */
        start local 7 // int refNbr
        34: .line 3261
            aload 4 /* roleInfo */
            iload 7 /* refNbr */
            invokevirtual javax.management.relation.RoleInfo.checkMinDegree:(I)Z
            istore 8 /* chkMinFlag */
        start local 8 // boolean chkMinFlag
        35: .line 3262
            iload 8 /* chkMinFlag */
            ifne 40
        36: .line 3263
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
        37: .line 3264
            ldc "checkRoleInt"
        38: .line 3263
            invokevirtual java.util.logging.Logger.exiting:(Ljava/lang/String;Ljava/lang/String;)V
        39: .line 3265
            new java.lang.Integer
            dup
            iconst_4
            invokespecial java.lang.Integer.<init>:(I)V
            areturn
        40: .line 3269
      StackMap locals: int int
      StackMap stack:
            aload 4 /* roleInfo */
            iload 7 /* refNbr */
            invokevirtual javax.management.relation.RoleInfo.checkMaxDegree:(I)Z
            istore 9 /* chkMaxFlag */
        start local 9 // boolean chkMaxFlag
        41: .line 3270
            iload 9 /* chkMaxFlag */
            ifne 46
        42: .line 3271
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
        43: .line 3272
            ldc "checkRoleInt"
        44: .line 3271
            invokevirtual java.util.logging.Logger.exiting:(Ljava/lang/String;Ljava/lang/String;)V
        45: .line 3273
            new java.lang.Integer
            dup
            iconst_5
            invokespecial java.lang.Integer.<init>:(I)V
            areturn
        46: .line 3282
      StackMap locals: int
      StackMap stack:
            aload 4 /* roleInfo */
            invokevirtual javax.management.relation.RoleInfo.getRefMBeanClassName:()Ljava/lang/String;
            astore 10 /* expClassName */
        start local 10 // java.lang.String expClassName
        47: .line 3284
            aload 3 /* roleValue */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 11 /* refMBeanIter */
        start local 11 // java.util.Iterator refMBeanIter
        48: .line 3285
            goto 69
        49: .line 3286
      StackMap locals: java.lang.String java.util.Iterator
      StackMap stack:
            aload 11 /* refMBeanIter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.management.ObjectName
            astore 12 /* currObjName */
        start local 12 // javax.management.ObjectName currObjName
        50: .line 3289
            aload 12 /* currObjName */
            ifnonnull 55
        51: .line 3290
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
        52: .line 3291
            ldc "checkRoleInt"
        53: .line 3290
            invokevirtual java.util.logging.Logger.exiting:(Ljava/lang/String;Ljava/lang/String;)V
        54: .line 3292
            new java.lang.Integer
            dup
            bipush 7
            invokespecial java.lang.Integer.<init>:(I)V
            areturn
        55: .line 3298
      StackMap locals: javax.management.ObjectName
      StackMap stack:
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myMBeanServer:Ljavax/management/MBeanServer;
            aload 12 /* currObjName */
        56: .line 3299
            aload 10 /* expClassName */
        57: .line 3298
            invokeinterface javax.management.MBeanServer.isInstanceOf:(Ljavax/management/ObjectName;Ljava/lang/String;)Z
            istore 13 /* classSts */
        start local 13 // boolean classSts
        58: .line 3300
            iload 13 /* classSts */
            ifne 69
        59: .line 3301
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
        60: .line 3302
            ldc "checkRoleInt"
        61: .line 3301
            invokevirtual java.util.logging.Logger.exiting:(Ljava/lang/String;Ljava/lang/String;)V
        62: .line 3303
            new java.lang.Integer
            dup
            bipush 6
            invokespecial java.lang.Integer.<init>:(I)V
        63: areturn
        end local 13 // boolean classSts
        64: .line 3306
      StackMap locals:
      StackMap stack: javax.management.InstanceNotFoundException
            pop
        65: .line 3307
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
        66: .line 3308
            ldc "checkRoleInt"
        67: .line 3307
            invokevirtual java.util.logging.Logger.exiting:(Ljava/lang/String;Ljava/lang/String;)V
        68: .line 3309
            new java.lang.Integer
            dup
            bipush 7
            invokespecial java.lang.Integer.<init>:(I)V
            areturn
        end local 12 // javax.management.ObjectName currObjName
        69: .line 3285
      StackMap locals:
      StackMap stack:
            aload 11 /* refMBeanIter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 49
        end local 11 // java.util.Iterator refMBeanIter
        70: .line 3313
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
        71: .line 3314
            ldc "checkRoleInt"
        72: .line 3313
            invokevirtual java.util.logging.Logger.exiting:(Ljava/lang/String;Ljava/lang/String;)V
        73: .line 3315
            new java.lang.Integer
            dup
            iconst_0
            invokespecial java.lang.Integer.<init>:(I)V
            areturn
        end local 10 // java.lang.String expClassName
        end local 9 // boolean chkMaxFlag
        end local 8 // boolean chkMinFlag
        end local 7 // int refNbr
        end local 6 // java.lang.String expName
        end local 5 // boolean writeChkFlag
        end local 4 // javax.management.relation.RoleInfo roleInfo
        end local 3 // java.util.List roleValue
        end local 2 // java.lang.String roleName
        end local 1 // int chkType
        end local 0 // javax.management.relation.RelationService this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   74     0          this  Ljavax/management/relation/RelationService;
            0   74     1       chkType  I
            0   74     2      roleName  Ljava/lang/String;
            0   74     3     roleValue  Ljava/util/List;
            0   74     4      roleInfo  Ljavax/management/relation/RoleInfo;
            0   74     5  writeChkFlag  Z
            4    5     6        excMsg  Ljava/lang/String;
           10   74     6       expName  Ljava/lang/String;
           17   26     7    isReadable  Z
           28   33     7    isWritable  Z
           34   74     7        refNbr  I
           35   74     8    chkMinFlag  Z
           41   74     9    chkMaxFlag  Z
           47   74    10  expClassName  Ljava/lang/String;
           48   70    11  refMBeanIter  Ljava/util/Iterator;
           50   69    12   currObjName  Ljavax/management/ObjectName;
           58   64    13      classSts  Z
      Exception table:
        from    to  target  type
          55    63      64  Class javax.management.InstanceNotFoundException
    Exceptions:
      throws java.lang.IllegalArgumentException
    MethodParameters:
              Name  Flags
      chkType       
      roleName      
      roleValue     
      roleInfo      
      writeChkFlag  

  private void initializeMissingRoles(boolean, javax.management.relation.RelationSupport, javax.management.ObjectName, java.lang.String, java.lang.String, java.util.List);
    descriptor: (ZLjavax/management/relation/RelationSupport;Ljavax/management/ObjectName;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=16, args_size=7
        start local 0 // javax.management.relation.RelationService this
        start local 1 // boolean relationBaseFlag
        start local 2 // javax.management.relation.RelationSupport relationObj
        start local 3 // javax.management.ObjectName relationObjName
        start local 4 // java.lang.String relationId
        start local 5 // java.lang.String relationTypeName
        start local 6 // java.util.List roleInfoList
         0: .line 3353
            iload 1 /* relationBaseFlag */
            ifeq 3
         1: .line 3354
            aload 2 /* relationObj */
            ifnull 9
         2: .line 3355
            aload 3 /* relationObjName */
            ifnonnull 9
         3: .line 3356
      StackMap locals:
      StackMap stack:
            iload 1 /* relationBaseFlag */
            ifne 6
         4: .line 3357
            aload 3 /* relationObjName */
            ifnull 9
         5: .line 3358
            aload 2 /* relationObj */
            ifnonnull 9
         6: .line 3359
      StackMap locals:
      StackMap stack:
            aload 4 /* relationId */
            ifnull 9
         7: .line 3360
            aload 5 /* relationTypeName */
            ifnull 9
         8: .line 3361
            aload 6 /* roleInfoList */
            ifnonnull 11
         9: .line 3362
      StackMap locals:
      StackMap stack:
            ldc "Invalid parameter."
            astore 7 /* excMsg */
        start local 7 // java.lang.String excMsg
        10: .line 3363
            new java.lang.IllegalArgumentException
            dup
            aload 7 /* excMsg */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 7 // java.lang.String excMsg
        11: .line 3366
      StackMap locals:
      StackMap stack:
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
        12: .line 3367
            ldc "initializeMissingRoles"
            bipush 6
            anewarray java.lang.Object
            dup
            iconst_0
            iload 1 /* relationBaseFlag */
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            aastore
            dup
            iconst_1
        13: .line 3368
            aload 2 /* relationObj */
            aastore
            dup
            iconst_2
            aload 3 /* relationObjName */
            aastore
            dup
            iconst_3
            aload 4 /* relationId */
            aastore
            dup
            iconst_4
            aload 5 /* relationTypeName */
            aastore
            dup
            iconst_5
        14: .line 3369
            aload 6 /* roleInfoList */
            aastore
        15: .line 3366
            invokevirtual java.util.logging.Logger.entering:(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
        16: .line 3372
            aload 0 /* this */
            invokevirtual javax.management.relation.RelationService.isActive:()V
        17: .line 3379
            aload 6 /* roleInfoList */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 7 /* roleInfoIter */
        start local 7 // java.util.Iterator roleInfoIter
        18: .line 3380
            goto 53
        19: .line 3382
      StackMap locals: java.util.Iterator
      StackMap stack:
            aload 7 /* roleInfoIter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.management.relation.RoleInfo
            astore 8 /* currRoleInfo */
        start local 8 // javax.management.relation.RoleInfo currRoleInfo
        20: .line 3383
            aload 8 /* currRoleInfo */
            invokevirtual javax.management.relation.RoleInfo.getName:()Ljava/lang/String;
            astore 9 /* roleName */
        start local 9 // java.lang.String roleName
        21: .line 3386
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 10 /* emptyValue */
        start local 10 // java.util.List emptyValue
        22: .line 3388
            new javax.management.relation.Role
            dup
            aload 9 /* roleName */
            aload 10 /* emptyValue */
            invokespecial javax.management.relation.Role.<init>:(Ljava/lang/String;Ljava/util/List;)V
            astore 11 /* role */
        start local 11 // javax.management.relation.Role role
        23: .line 3390
            iload 1 /* relationBaseFlag */
            ifeq 32
        24: .line 3399
            aload 2 /* relationObj */
            aload 11 /* role */
            iconst_1
            aload 0 /* this */
            iconst_0
            invokevirtual javax.management.relation.RelationSupport.setRoleInt:(Ljavax/management/relation/Role;ZLjavax/management/relation/RelationService;Z)Ljava/lang/Object;
            pop
        25: .line 3401
            goto 53
      StackMap locals: javax.management.relation.RelationService int javax.management.relation.RelationSupport javax.management.ObjectName java.lang.String java.lang.String java.util.List java.util.Iterator javax.management.relation.RoleInfo java.lang.String java.util.List javax.management.relation.Role
      StackMap stack: javax.management.relation.RoleNotFoundException
        26: astore 12 /* exc1 */
        start local 12 // javax.management.relation.RoleNotFoundException exc1
        27: .line 3402
            new java.lang.RuntimeException
            dup
            aload 12 /* exc1 */
            invokevirtual javax.management.relation.RoleNotFoundException.getMessage:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 12 // javax.management.relation.RoleNotFoundException exc1
        28: .line 3403
      StackMap locals:
      StackMap stack: javax.management.relation.RelationNotFoundException
            astore 12 /* exc2 */
        start local 12 // javax.management.relation.RelationNotFoundException exc2
        29: .line 3404
            new java.lang.RuntimeException
            dup
            aload 12 /* exc2 */
            invokevirtual javax.management.relation.RelationNotFoundException.getMessage:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 12 // javax.management.relation.RelationNotFoundException exc2
        30: .line 3405
      StackMap locals:
      StackMap stack: javax.management.relation.RelationTypeNotFoundException
            astore 12 /* exc3 */
        start local 12 // javax.management.relation.RelationTypeNotFoundException exc3
        31: .line 3406
            new java.lang.RuntimeException
            dup
            aload 12 /* exc3 */
            invokevirtual javax.management.relation.RelationTypeNotFoundException.getMessage:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 12 // javax.management.relation.RelationTypeNotFoundException exc3
        32: .line 3413
      StackMap locals:
      StackMap stack:
            iconst_1
            anewarray java.lang.Object
            astore 12 /* params */
        start local 12 // java.lang.Object[] params
        33: .line 3414
            aload 12 /* params */
            iconst_0
            aload 11 /* role */
            aastore
        34: .line 3415
            iconst_1
            anewarray java.lang.String
            astore 13 /* signature */
        start local 13 // java.lang.String[] signature
        35: .line 3416
            aload 13 /* signature */
            iconst_0
            ldc "javax.management.relation.Role"
            aastore
        36: .line 3428
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myMBeanServer:Ljavax/management/MBeanServer;
            aload 3 /* relationObjName */
        37: .line 3429
            new javax.management.Attribute
            dup
            ldc "Role"
            aload 11 /* role */
            invokespecial javax.management.Attribute.<init>:(Ljava/lang/String;Ljava/lang/Object;)V
        38: .line 3428
            invokeinterface javax.management.MBeanServer.setAttribute:(Ljavax/management/ObjectName;Ljavax/management/Attribute;)V
        39: .line 3431
            goto 53
      StackMap locals: javax.management.relation.RelationService int javax.management.relation.RelationSupport javax.management.ObjectName java.lang.String java.lang.String java.util.List java.util.Iterator javax.management.relation.RoleInfo java.lang.String java.util.List javax.management.relation.Role java.lang.Object[] java.lang.String[]
      StackMap stack: javax.management.InstanceNotFoundException
        40: astore 14 /* exc1 */
        start local 14 // javax.management.InstanceNotFoundException exc1
        41: .line 3432
            new java.lang.RuntimeException
            dup
            aload 14 /* exc1 */
            invokevirtual javax.management.InstanceNotFoundException.getMessage:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 14 // javax.management.InstanceNotFoundException exc1
        42: .line 3433
      StackMap locals:
      StackMap stack: javax.management.ReflectionException
            astore 14 /* exc3 */
        start local 14 // javax.management.ReflectionException exc3
        43: .line 3434
            new java.lang.RuntimeException
            dup
            aload 14 /* exc3 */
            invokevirtual javax.management.ReflectionException.getMessage:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 14 // javax.management.ReflectionException exc3
        44: .line 3435
      StackMap locals:
      StackMap stack: javax.management.MBeanException
            astore 14 /* exc2 */
        start local 14 // javax.management.MBeanException exc2
        45: .line 3436
            aload 14 /* exc2 */
            invokevirtual javax.management.MBeanException.getTargetException:()Ljava/lang/Exception;
            astore 15 /* wrappedExc */
        start local 15 // java.lang.Exception wrappedExc
        46: .line 3437
            aload 15 /* wrappedExc */
            instanceof javax.management.relation.InvalidRoleValueException
            ifeq 48
        47: .line 3438
            aload 15 /* wrappedExc */
            checkcast javax.management.relation.InvalidRoleValueException
            athrow
        48: .line 3440
      StackMap locals: javax.management.MBeanException java.lang.Exception
      StackMap stack:
            new java.lang.RuntimeException
            dup
            aload 15 /* wrappedExc */
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 15 // java.lang.Exception wrappedExc
        end local 14 // javax.management.MBeanException exc2
        49: .line 3442
      StackMap locals: javax.management.relation.RelationService int javax.management.relation.RelationSupport javax.management.ObjectName java.lang.String java.lang.String java.util.List java.util.Iterator javax.management.relation.RoleInfo java.lang.String java.util.List javax.management.relation.Role java.lang.Object[] java.lang.String[]
      StackMap stack: javax.management.AttributeNotFoundException
            astore 14 /* exc4 */
        start local 14 // javax.management.AttributeNotFoundException exc4
        50: .line 3443
            new java.lang.RuntimeException
            dup
            aload 14 /* exc4 */
            invokevirtual javax.management.AttributeNotFoundException.getMessage:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 14 // javax.management.AttributeNotFoundException exc4
        51: .line 3444
      StackMap locals:
      StackMap stack: javax.management.InvalidAttributeValueException
            astore 14 /* exc5 */
        start local 14 // javax.management.InvalidAttributeValueException exc5
        52: .line 3445
            new java.lang.RuntimeException
            dup
            aload 14 /* exc5 */
            invokevirtual javax.management.InvalidAttributeValueException.getMessage:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 14 // javax.management.InvalidAttributeValueException exc5
        end local 13 // java.lang.String[] signature
        end local 12 // java.lang.Object[] params
        end local 11 // javax.management.relation.Role role
        end local 10 // java.util.List emptyValue
        end local 9 // java.lang.String roleName
        end local 8 // javax.management.relation.RoleInfo currRoleInfo
        53: .line 3380
      StackMap locals: javax.management.relation.RelationService int javax.management.relation.RelationSupport javax.management.ObjectName java.lang.String java.lang.String java.util.List java.util.Iterator
      StackMap stack:
            aload 7 /* roleInfoIter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 19
        end local 7 // java.util.Iterator roleInfoIter
        54: .line 3450
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
        55: .line 3451
            ldc "initializeMissingRoles"
        56: .line 3450
            invokevirtual java.util.logging.Logger.exiting:(Ljava/lang/String;Ljava/lang/String;)V
        57: .line 3452
            return
        end local 6 // java.util.List roleInfoList
        end local 5 // java.lang.String relationTypeName
        end local 4 // java.lang.String relationId
        end local 3 // javax.management.ObjectName relationObjName
        end local 2 // javax.management.relation.RelationSupport relationObj
        end local 1 // boolean relationBaseFlag
        end local 0 // javax.management.relation.RelationService this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   58     0              this  Ljavax/management/relation/RelationService;
            0   58     1  relationBaseFlag  Z
            0   58     2       relationObj  Ljavax/management/relation/RelationSupport;
            0   58     3   relationObjName  Ljavax/management/ObjectName;
            0   58     4        relationId  Ljava/lang/String;
            0   58     5  relationTypeName  Ljava/lang/String;
            0   58     6      roleInfoList  Ljava/util/List;
           10   11     7            excMsg  Ljava/lang/String;
           18   54     7      roleInfoIter  Ljava/util/Iterator;
           20   53     8      currRoleInfo  Ljavax/management/relation/RoleInfo;
           21   53     9          roleName  Ljava/lang/String;
           22   53    10        emptyValue  Ljava/util/List<Ljavax/management/ObjectName;>;
           23   53    11              role  Ljavax/management/relation/Role;
           27   28    12              exc1  Ljavax/management/relation/RoleNotFoundException;
           29   30    12              exc2  Ljavax/management/relation/RelationNotFoundException;
           31   32    12              exc3  Ljavax/management/relation/RelationTypeNotFoundException;
           33   53    12            params  [Ljava/lang/Object;
           35   53    13         signature  [Ljava/lang/String;
           41   42    14              exc1  Ljavax/management/InstanceNotFoundException;
           43   44    14              exc3  Ljavax/management/ReflectionException;
           45   49    14              exc2  Ljavax/management/MBeanException;
           46   49    15        wrappedExc  Ljava/lang/Exception;
           50   51    14              exc4  Ljavax/management/AttributeNotFoundException;
           52   53    14              exc5  Ljavax/management/InvalidAttributeValueException;
      Exception table:
        from    to  target  type
          24    25      26  Class javax.management.relation.RoleNotFoundException
          24    25      28  Class javax.management.relation.RelationNotFoundException
          24    25      30  Class javax.management.relation.RelationTypeNotFoundException
          36    39      40  Class javax.management.InstanceNotFoundException
          36    39      42  Class javax.management.ReflectionException
          36    39      44  Class javax.management.MBeanException
          36    39      49  Class javax.management.AttributeNotFoundException
          36    39      51  Class javax.management.InvalidAttributeValueException
    Exceptions:
      throws java.lang.IllegalArgumentException, javax.management.relation.RelationServiceNotRegisteredException, javax.management.relation.InvalidRoleValueException
    MethodParameters:
                  Name  Flags
      relationBaseFlag  
      relationObj       
      relationObjName   
      relationId        
      relationTypeName  
      roleInfoList      

  static void throwRoleProblemException(int, java.lang.String);
    descriptor: (ILjava/lang/String;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // int pbType
        start local 1 // java.lang.String roleName
         0: .line 3476
            aload 1 /* roleName */
            ifnonnull 3
         1: .line 3477
            ldc "Invalid parameter."
            astore 2 /* excMsg */
        start local 2 // java.lang.String excMsg
         2: .line 3478
            new java.lang.IllegalArgumentException
            dup
            aload 2 /* excMsg */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.lang.String excMsg
         3: .line 3483
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 2 /* excType */
        start local 2 // int excType
         4: .line 3485
            aconst_null
            astore 3 /* excMsgPart */
        start local 3 // java.lang.String excMsgPart
         5: .line 3487
            iload 0 /* pbType */
            tableswitch { // 1 - 7
                    1: 6
                    2: 9
                    3: 12
                    4: 15
                    5: 18
                    6: 21
                    7: 24
              default: 26
          }
         6: .line 3489
      StackMap locals: int java.lang.String
      StackMap stack:
            ldc " does not exist in relation."
            astore 3 /* excMsgPart */
         7: .line 3490
            iconst_1
            istore 2 /* excType */
         8: .line 3491
            goto 26
         9: .line 3493
      StackMap locals:
      StackMap stack:
            ldc " is not readable."
            astore 3 /* excMsgPart */
        10: .line 3494
            iconst_1
            istore 2 /* excType */
        11: .line 3495
            goto 26
        12: .line 3497
      StackMap locals:
      StackMap stack:
            ldc " is not writable."
            astore 3 /* excMsgPart */
        13: .line 3498
            iconst_1
            istore 2 /* excType */
        14: .line 3499
            goto 26
        15: .line 3501
      StackMap locals:
      StackMap stack:
            ldc " has a number of MBean references less than the expected minimum degree."
            astore 3 /* excMsgPart */
        16: .line 3502
            iconst_2
            istore 2 /* excType */
        17: .line 3503
            goto 26
        18: .line 3505
      StackMap locals:
      StackMap stack:
            ldc " has a number of MBean references greater than the expected maximum degree."
            astore 3 /* excMsgPart */
        19: .line 3506
            iconst_2
            istore 2 /* excType */
        20: .line 3507
            goto 26
        21: .line 3509
      StackMap locals:
      StackMap stack:
            ldc " has an MBean reference to an MBean not of the expected class of references for that role."
            astore 3 /* excMsgPart */
        22: .line 3510
            iconst_2
            istore 2 /* excType */
        23: .line 3511
            goto 26
        24: .line 3513
      StackMap locals:
      StackMap stack:
            ldc " has a reference to null or to an MBean not registered."
            astore 3 /* excMsgPart */
        25: .line 3514
            iconst_2
            istore 2 /* excType */
        26: .line 3519
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 1 /* roleName */
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            astore 4 /* excMsgStrB */
        start local 4 // java.lang.StringBuilder excMsgStrB
        27: .line 3520
            aload 4 /* excMsgStrB */
            aload 3 /* excMsgPart */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        28: .line 3521
            aload 4 /* excMsgStrB */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 5 /* excMsg */
        start local 5 // java.lang.String excMsg
        29: .line 3522
            iload 2 /* excType */
            iconst_1
            if_icmpne 31
        30: .line 3523
            new javax.management.relation.RoleNotFoundException
            dup
            aload 5 /* excMsg */
            invokespecial javax.management.relation.RoleNotFoundException.<init>:(Ljava/lang/String;)V
            athrow
        31: .line 3525
      StackMap locals: java.lang.StringBuilder java.lang.String
      StackMap stack:
            iload 2 /* excType */
            iconst_2
            if_icmpne 33
        32: .line 3526
            new javax.management.relation.InvalidRoleValueException
            dup
            aload 5 /* excMsg */
            invokespecial javax.management.relation.InvalidRoleValueException.<init>:(Ljava/lang/String;)V
            athrow
        33: .line 3528
      StackMap locals:
      StackMap stack:
            return
        end local 5 // java.lang.String excMsg
        end local 4 // java.lang.StringBuilder excMsgStrB
        end local 3 // java.lang.String excMsgPart
        end local 2 // int excType
        end local 1 // java.lang.String roleName
        end local 0 // int pbType
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   34     0      pbType  I
            0   34     1    roleName  Ljava/lang/String;
            2    3     2      excMsg  Ljava/lang/String;
            4   34     2     excType  I
            5   34     3  excMsgPart  Ljava/lang/String;
           27   34     4  excMsgStrB  Ljava/lang/StringBuilder;
           29   34     5      excMsg  Ljava/lang/String;
    Exceptions:
      throws java.lang.IllegalArgumentException, javax.management.relation.RoleNotFoundException, javax.management.relation.InvalidRoleValueException
    MethodParameters:
          Name  Flags
      pbType    
      roleName  

  private void sendNotificationInt(int, java.lang.String, java.lang.String, java.util.List<javax.management.ObjectName>, java.lang.String, java.util.List<javax.management.ObjectName>, java.util.List<javax.management.ObjectName>);
    descriptor: (ILjava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/util/List;Ljava/util/List;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=15, locals=16, args_size=8
        start local 0 // javax.management.relation.RelationService this
        start local 1 // int intNtfType
        start local 2 // java.lang.String message
        start local 3 // java.lang.String relationId
        start local 4 // java.util.List unregMBeanList
        start local 5 // java.lang.String roleName
        start local 6 // java.util.List roleNewValue
        start local 7 // java.util.List oldValue
         0: .line 3557
            aload 2 /* message */
            ifnull 7
         1: .line 3558
            aload 3 /* relationId */
            ifnull 7
         2: .line 3559
            iload 1 /* intNtfType */
            iconst_3
            if_icmpeq 3
            aload 4 /* unregMBeanList */
            ifnonnull 7
         3: .line 3560
      StackMap locals:
      StackMap stack:
            iload 1 /* intNtfType */
            iconst_2
            if_icmpne 9
         4: .line 3561
            aload 5 /* roleName */
            ifnull 7
         5: .line 3562
            aload 6 /* roleNewValue */
            ifnull 7
         6: .line 3563
            aload 7 /* oldValue */
            ifnonnull 9
         7: .line 3564
      StackMap locals:
      StackMap stack:
            ldc "Invalid parameter."
            astore 8 /* excMsg */
        start local 8 // java.lang.String excMsg
         8: .line 3565
            new java.lang.IllegalArgumentException
            dup
            aload 8 /* excMsg */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 8 // java.lang.String excMsg
         9: .line 3568
      StackMap locals:
      StackMap stack:
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
        10: .line 3569
            ldc "sendNotificationInt"
            bipush 7
            anewarray java.lang.Object
            dup
            iconst_0
            iload 1 /* intNtfType */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            aload 2 /* message */
            aastore
            dup
            iconst_2
        11: .line 3570
            aload 3 /* relationId */
            aastore
            dup
            iconst_3
            aload 4 /* unregMBeanList */
            aastore
            dup
            iconst_4
            aload 5 /* roleName */
            aastore
            dup
            iconst_5
            aload 6 /* roleNewValue */
            aastore
            dup
            bipush 6
            aload 7 /* oldValue */
            aastore
        12: .line 3568
            invokevirtual java.util.logging.Logger.entering:(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
        13: .line 3575
            aconst_null
            astore 8 /* relTypeName */
        start local 8 // java.lang.String relTypeName
        14: .line 3576
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myRelId2RelTypeMap:Ljava/util/Map;
            dup
            astore 9
            monitorenter
        15: .line 3577
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myRelId2RelTypeMap:Ljava/util/Map;
            aload 3 /* relationId */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 8 /* relTypeName */
        16: .line 3576
            aload 9
            monitorexit
        17: goto 20
      StackMap locals: javax.management.relation.RelationService int java.lang.String java.lang.String java.util.List java.lang.String java.util.List java.util.List java.lang.String java.util.Map
      StackMap stack: java.lang.Throwable
        18: aload 9
            monitorexit
        19: athrow
        20: .line 3582
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* relationId */
            invokevirtual javax.management.relation.RelationService.isRelationMBean:(Ljava/lang/String;)Ljavax/management/ObjectName;
            astore 9 /* relObjName */
        start local 9 // javax.management.ObjectName relObjName
        21: .line 3584
            aconst_null
            astore 10 /* ntfType */
        start local 10 // java.lang.String ntfType
        22: .line 3585
            aload 9 /* relObjName */
            ifnull 30
        23: .line 3586
            iload 1 /* intNtfType */
            tableswitch { // 1 - 3
                    1: 24
                    2: 26
                    3: 28
              default: 29
          }
        24: .line 3588
      StackMap locals: javax.management.ObjectName java.lang.String
      StackMap stack:
            ldc "jmx.relation.creation.mbean"
            astore 10 /* ntfType */
        25: .line 3589
            goto 36
        26: .line 3591
      StackMap locals:
      StackMap stack:
            ldc "jmx.relation.update.mbean"
            astore 10 /* ntfType */
        27: .line 3592
            goto 36
        28: .line 3594
      StackMap locals:
      StackMap stack:
            ldc "jmx.relation.removal.mbean"
            astore 10 /* ntfType */
        29: .line 3597
      StackMap locals:
      StackMap stack:
            goto 36
        30: .line 3598
      StackMap locals:
      StackMap stack:
            iload 1 /* intNtfType */
            tableswitch { // 1 - 3
                    1: 31
                    2: 33
                    3: 35
              default: 36
          }
        31: .line 3600
      StackMap locals:
      StackMap stack:
            ldc "jmx.relation.creation.basic"
            astore 10 /* ntfType */
        32: .line 3601
            goto 36
        33: .line 3603
      StackMap locals:
      StackMap stack:
            ldc "jmx.relation.update.basic"
            astore 10 /* ntfType */
        34: .line 3604
            goto 36
        35: .line 3606
      StackMap locals:
      StackMap stack:
            ldc "jmx.relation.removal.basic"
            astore 10 /* ntfType */
        36: .line 3612
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual javax.management.relation.RelationService.getNotificationSequenceNumber:()Ljava/lang/Long;
            astore 11 /* seqNbr */
        start local 11 // java.lang.Long seqNbr
        37: .line 3615
            new java.util.Date
            dup
            invokespecial java.util.Date.<init>:()V
            astore 12 /* currDate */
        start local 12 // java.util.Date currDate
        38: .line 3616
            aload 12 /* currDate */
            invokevirtual java.util.Date.getTime:()J
            lstore 13 /* timeStamp */
        start local 13 // long timeStamp
        39: .line 3618
            aconst_null
            astore 15 /* ntf */
        start local 15 // javax.management.relation.RelationNotification ntf
        40: .line 3620
            aload 10 /* ntfType */
            ldc "jmx.relation.creation.basic"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 44
        41: .line 3621
            aload 10 /* ntfType */
            ldc "jmx.relation.creation.mbean"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 44
        42: .line 3622
            aload 10 /* ntfType */
            ldc "jmx.relation.removal.basic"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 44
        43: .line 3623
            aload 10 /* ntfType */
            ldc "jmx.relation.removal.mbean"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 55
        44: .line 3626
      StackMap locals: javax.management.relation.RelationService int java.lang.String java.lang.String java.util.List java.lang.String java.util.List java.util.List java.lang.String javax.management.ObjectName java.lang.String java.lang.Long java.util.Date long javax.management.relation.RelationNotification
      StackMap stack:
            new javax.management.relation.RelationNotification
            dup
            aload 10 /* ntfType */
        45: .line 3627
            aload 0 /* this */
        46: .line 3628
            aload 11 /* seqNbr */
            invokevirtual java.lang.Long.longValue:()J
        47: .line 3629
            lload 13 /* timeStamp */
        48: .line 3630
            aload 2 /* message */
        49: .line 3631
            aload 3 /* relationId */
        50: .line 3632
            aload 8 /* relTypeName */
        51: .line 3633
            aload 9 /* relObjName */
        52: .line 3634
            aload 4 /* unregMBeanList */
        53: .line 3626
            invokespecial javax.management.relation.RelationNotification.<init>:(Ljava/lang/String;Ljava/lang/Object;JJLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljavax/management/ObjectName;Ljava/util/List;)V
            astore 15 /* ntf */
        54: .line 3634
            goto 69
        55: .line 3636
      StackMap locals:
      StackMap stack:
            aload 10 /* ntfType */
            ldc "jmx.relation.update.basic"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 57
        56: .line 3638
            aload 10 /* ntfType */
            ldc "jmx.relation.update.mbean"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 69
        57: .line 3641
      StackMap locals:
      StackMap stack:
            new javax.management.relation.RelationNotification
            dup
            aload 10 /* ntfType */
        58: .line 3642
            aload 0 /* this */
        59: .line 3643
            aload 11 /* seqNbr */
            invokevirtual java.lang.Long.longValue:()J
        60: .line 3644
            lload 13 /* timeStamp */
        61: .line 3645
            aload 2 /* message */
        62: .line 3646
            aload 3 /* relationId */
        63: .line 3647
            aload 8 /* relTypeName */
        64: .line 3648
            aload 9 /* relObjName */
        65: .line 3649
            aload 5 /* roleName */
        66: .line 3650
            aload 6 /* roleNewValue */
        67: .line 3651
            aload 7 /* oldValue */
        68: .line 3641
            invokespecial javax.management.relation.RelationNotification.<init>:(Ljava/lang/String;Ljava/lang/Object;JJLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljavax/management/ObjectName;Ljava/lang/String;Ljava/util/List;Ljava/util/List;)V
            astore 15 /* ntf */
        69: .line 3654
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 15 /* ntf */
            invokevirtual javax.management.relation.RelationService.sendNotification:(Ljavax/management/Notification;)V
        70: .line 3656
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
        71: .line 3657
            ldc "sendNotificationInt"
        72: .line 3656
            invokevirtual java.util.logging.Logger.exiting:(Ljava/lang/String;Ljava/lang/String;)V
        73: .line 3658
            return
        end local 15 // javax.management.relation.RelationNotification ntf
        end local 13 // long timeStamp
        end local 12 // java.util.Date currDate
        end local 11 // java.lang.Long seqNbr
        end local 10 // java.lang.String ntfType
        end local 9 // javax.management.ObjectName relObjName
        end local 8 // java.lang.String relTypeName
        end local 7 // java.util.List oldValue
        end local 6 // java.util.List roleNewValue
        end local 5 // java.lang.String roleName
        end local 4 // java.util.List unregMBeanList
        end local 3 // java.lang.String relationId
        end local 2 // java.lang.String message
        end local 1 // int intNtfType
        end local 0 // javax.management.relation.RelationService this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   74     0            this  Ljavax/management/relation/RelationService;
            0   74     1      intNtfType  I
            0   74     2         message  Ljava/lang/String;
            0   74     3      relationId  Ljava/lang/String;
            0   74     4  unregMBeanList  Ljava/util/List<Ljavax/management/ObjectName;>;
            0   74     5        roleName  Ljava/lang/String;
            0   74     6    roleNewValue  Ljava/util/List<Ljavax/management/ObjectName;>;
            0   74     7        oldValue  Ljava/util/List<Ljavax/management/ObjectName;>;
            8    9     8          excMsg  Ljava/lang/String;
           14   74     8     relTypeName  Ljava/lang/String;
           21   74     9      relObjName  Ljavax/management/ObjectName;
           22   74    10         ntfType  Ljava/lang/String;
           37   74    11          seqNbr  Ljava/lang/Long;
           38   74    12        currDate  Ljava/util/Date;
           39   74    13       timeStamp  J
           40   74    15             ntf  Ljavax/management/relation/RelationNotification;
      Exception table:
        from    to  target  type
          15    17      18  any
          18    19      18  any
    Exceptions:
      throws java.lang.IllegalArgumentException, javax.management.relation.RelationNotFoundException
    Signature: (ILjava/lang/String;Ljava/lang/String;Ljava/util/List<Ljavax/management/ObjectName;>;Ljava/lang/String;Ljava/util/List<Ljavax/management/ObjectName;>;Ljava/util/List<Ljavax/management/ObjectName;>;)V
    MethodParameters:
                Name  Flags
      intNtfType      
      message         
      relationId      
      unregMBeanList  
      roleName        
      roleNewValue    
      oldValue        

  private void handleReferenceUnregistration(java.lang.String, javax.management.ObjectName, java.util.List);
    descriptor: (Ljava/lang/String;Ljavax/management/ObjectName;Ljava/util/List;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=13, args_size=4
        start local 0 // javax.management.relation.RelationService this
        start local 1 // java.lang.String relationId
        start local 2 // javax.management.ObjectName objectName
        start local 3 // java.util.List roleNameList
         0: .line 3687
            aload 1 /* relationId */
            ifnull 3
         1: .line 3688
            aload 3 /* roleNameList */
            ifnull 3
         2: .line 3689
            aload 2 /* objectName */
            ifnonnull 5
         3: .line 3690
      StackMap locals:
      StackMap stack:
            ldc "Invalid parameter."
            astore 4 /* excMsg */
        start local 4 // java.lang.String excMsg
         4: .line 3691
            new java.lang.IllegalArgumentException
            dup
            aload 4 /* excMsg */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // java.lang.String excMsg
         5: .line 3694
      StackMap locals:
      StackMap stack:
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
         6: .line 3695
            ldc "handleReferenceUnregistration"
         7: .line 3696
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* relationId */
            aastore
            dup
            iconst_1
            aload 2 /* objectName */
            aastore
            dup
            iconst_2
            aload 3 /* roleNameList */
            aastore
         8: .line 3694
            invokevirtual java.util.logging.Logger.entering:(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
         9: .line 3699
            aload 0 /* this */
            invokevirtual javax.management.relation.RelationService.isActive:()V
        10: .line 3703
            aload 0 /* this */
            aload 1 /* relationId */
            invokevirtual javax.management.relation.RelationService.getRelationTypeName:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* currRelTypeName */
        start local 4 // java.lang.String currRelTypeName
        11: .line 3707
            aload 0 /* this */
            aload 1 /* relationId */
            invokevirtual javax.management.relation.RelationService.getRelation:(Ljava/lang/String;)Ljava/lang/Object;
            astore 5 /* relObj */
        start local 5 // java.lang.Object relObj
        12: .line 3710
            iconst_0
            istore 6 /* deleteRelFlag */
        start local 6 // boolean deleteRelFlag
        13: .line 3712
            aload 3 /* roleNameList */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 7 /* roleNameIter */
        start local 7 // java.util.Iterator roleNameIter
        14: .line 3713
            goto 33
        15: .line 3715
      StackMap locals: javax.management.relation.RelationService java.lang.String javax.management.ObjectName java.util.List java.lang.String java.lang.Object int java.util.Iterator
      StackMap stack:
            iload 6 /* deleteRelFlag */
            ifeq 17
        16: .line 3716
            goto 34
        17: .line 3719
      StackMap locals:
      StackMap stack:
            aload 7 /* roleNameIter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 8 /* currRoleName */
        start local 8 // java.lang.String currRoleName
        18: .line 3726
            aload 0 /* this */
            aload 1 /* relationId */
            aload 8 /* currRoleName */
            invokevirtual javax.management.relation.RelationService.getRoleCardinality:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Integer;
            invokevirtual java.lang.Integer.intValue:()I
        19: .line 3725
            istore 9 /* currRoleRefNbr */
        start local 9 // int currRoleRefNbr
        20: .line 3729
            iload 9 /* currRoleRefNbr */
            iconst_1
            isub
            istore 10 /* currRoleNewRefNbr */
        start local 10 // int currRoleNewRefNbr
        21: .line 3735
            aconst_null
            astore 11 /* currRoleInfo */
        start local 11 // javax.management.relation.RoleInfo currRoleInfo
        22: .line 3737
            aload 0 /* this */
            aload 4 /* currRelTypeName */
        23: .line 3738
            aload 8 /* currRoleName */
        24: .line 3737
            invokevirtual javax.management.relation.RelationService.getRoleInfo:(Ljava/lang/String;Ljava/lang/String;)Ljavax/management/relation/RoleInfo;
            astore 11 /* currRoleInfo */
        25: .line 3739
            goto 30
      StackMap locals: javax.management.relation.RelationService java.lang.String javax.management.ObjectName java.util.List java.lang.String java.lang.Object int java.util.Iterator java.lang.String int int javax.management.relation.RoleInfo
      StackMap stack: javax.management.relation.RelationTypeNotFoundException
        26: astore 12 /* exc1 */
        start local 12 // javax.management.relation.RelationTypeNotFoundException exc1
        27: .line 3740
            new java.lang.RuntimeException
            dup
            aload 12 /* exc1 */
            invokevirtual javax.management.relation.RelationTypeNotFoundException.getMessage:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 12 // javax.management.relation.RelationTypeNotFoundException exc1
        28: .line 3741
      StackMap locals:
      StackMap stack: javax.management.relation.RoleInfoNotFoundException
            astore 12 /* exc2 */
        start local 12 // javax.management.relation.RoleInfoNotFoundException exc2
        29: .line 3742
            new java.lang.RuntimeException
            dup
            aload 12 /* exc2 */
            invokevirtual javax.management.relation.RoleInfoNotFoundException.getMessage:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 12 // javax.management.relation.RoleInfoNotFoundException exc2
        30: .line 3746
      StackMap locals:
      StackMap stack:
            aload 11 /* currRoleInfo */
            iload 10 /* currRoleNewRefNbr */
            invokevirtual javax.management.relation.RoleInfo.checkMinDegree:(I)Z
            istore 12 /* chkMinFlag */
        start local 12 // boolean chkMinFlag
        31: .line 3748
            iload 12 /* chkMinFlag */
            ifne 33
        32: .line 3750
            iconst_1
            istore 6 /* deleteRelFlag */
        end local 12 // boolean chkMinFlag
        end local 11 // javax.management.relation.RoleInfo currRoleInfo
        end local 10 // int currRoleNewRefNbr
        end local 9 // int currRoleRefNbr
        end local 8 // java.lang.String currRoleName
        33: .line 3713
      StackMap locals: javax.management.relation.RelationService java.lang.String javax.management.ObjectName java.util.List java.lang.String java.lang.Object int java.util.Iterator
      StackMap stack:
            aload 7 /* roleNameIter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 15
        end local 7 // java.util.Iterator roleNameIter
        34: .line 3754
      StackMap locals:
      StackMap stack:
            iload 6 /* deleteRelFlag */
            ifeq 37
        35: .line 3756
            aload 0 /* this */
            aload 1 /* relationId */
            invokevirtual javax.management.relation.RelationService.removeRelation:(Ljava/lang/String;)V
        36: .line 3758
            goto 72
        37: .line 3771
      StackMap locals:
      StackMap stack:
            aload 3 /* roleNameList */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 7 /* roleNameIter */
        start local 7 // java.util.Iterator roleNameIter
        38: .line 3772
            goto 71
        39: .line 3774
      StackMap locals: java.util.Iterator
      StackMap stack:
            aload 7 /* roleNameIter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 8 /* currRoleName */
        start local 8 // java.lang.String currRoleName
        40: .line 3776
            aload 5 /* relObj */
            instanceof javax.management.relation.RelationSupport
            ifeq 52
        41: .line 3786
            aload 5 /* relObj */
            checkcast javax.management.relation.RelationSupport
        42: .line 3787
            aload 2 /* objectName */
        43: .line 3788
            aload 8 /* currRoleName */
        44: .line 3789
            iconst_1
        45: .line 3790
            aload 0 /* this */
        46: .line 3786
            invokevirtual javax.management.relation.RelationSupport.handleMBeanUnregistrationInt:(Ljavax/management/ObjectName;Ljava/lang/String;ZLjavax/management/relation/RelationService;)V
        47: .line 3791
            goto 71
      StackMap locals: javax.management.relation.RelationService java.lang.String javax.management.ObjectName java.util.List java.lang.String java.lang.Object int java.util.Iterator java.lang.String
      StackMap stack: javax.management.relation.RelationTypeNotFoundException
        48: astore 9 /* exc3 */
        start local 9 // javax.management.relation.RelationTypeNotFoundException exc3
        49: .line 3792
            new java.lang.RuntimeException
            dup
            aload 9 /* exc3 */
            invokevirtual javax.management.relation.RelationTypeNotFoundException.getMessage:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 9 // javax.management.relation.RelationTypeNotFoundException exc3
        50: .line 3793
      StackMap locals:
      StackMap stack: javax.management.relation.InvalidRoleValueException
            astore 9 /* exc4 */
        start local 9 // javax.management.relation.InvalidRoleValueException exc4
        51: .line 3794
            new java.lang.RuntimeException
            dup
            aload 9 /* exc4 */
            invokevirtual javax.management.relation.InvalidRoleValueException.getMessage:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 9 // javax.management.relation.InvalidRoleValueException exc4
        52: .line 3799
      StackMap locals:
      StackMap stack:
            iconst_2
            anewarray java.lang.Object
            astore 9 /* params */
        start local 9 // java.lang.Object[] params
        53: .line 3800
            aload 9 /* params */
            iconst_0
            aload 2 /* objectName */
            aastore
        54: .line 3801
            aload 9 /* params */
            iconst_1
            aload 8 /* currRoleName */
            aastore
        55: .line 3802
            iconst_2
            anewarray java.lang.String
            astore 10 /* signature */
        start local 10 // java.lang.String[] signature
        56: .line 3803
            aload 10 /* signature */
            iconst_0
            ldc "javax.management.ObjectName"
            aastore
        57: .line 3804
            aload 10 /* signature */
            iconst_1
            ldc "java.lang.String"
            aastore
        58: .line 3810
            aload 0 /* this */
            getfield javax.management.relation.RelationService.myMBeanServer:Ljavax/management/MBeanServer;
            aload 5 /* relObj */
            checkcast javax.management.ObjectName
        59: .line 3811
            ldc "handleMBeanUnregistration"
        60: .line 3812
            aload 9 /* params */
        61: .line 3813
            aload 10 /* signature */
        62: .line 3810
            invokeinterface javax.management.MBeanServer.invoke:(Ljavax/management/ObjectName;Ljava/lang/String;[Ljava/lang/Object;[Ljava/lang/String;)Ljava/lang/Object;
            pop
        63: .line 3814
            goto 71
      StackMap locals: javax.management.relation.RelationService java.lang.String javax.management.ObjectName java.util.List java.lang.String java.lang.Object int java.util.Iterator java.lang.String java.lang.Object[] java.lang.String[]
      StackMap stack: javax.management.InstanceNotFoundException
        64: astore 11 /* exc1 */
        start local 11 // javax.management.InstanceNotFoundException exc1
        65: .line 3815
            new java.lang.RuntimeException
            dup
            aload 11 /* exc1 */
            invokevirtual javax.management.InstanceNotFoundException.getMessage:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 11 // javax.management.InstanceNotFoundException exc1
        66: .line 3816
      StackMap locals:
      StackMap stack: javax.management.ReflectionException
            astore 11 /* exc3 */
        start local 11 // javax.management.ReflectionException exc3
        67: .line 3817
            new java.lang.RuntimeException
            dup
            aload 11 /* exc3 */
            invokevirtual javax.management.ReflectionException.getMessage:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 11 // javax.management.ReflectionException exc3
        68: .line 3818
      StackMap locals:
      StackMap stack: javax.management.MBeanException
            astore 11 /* exc2 */
        start local 11 // javax.management.MBeanException exc2
        69: .line 3819
            aload 11 /* exc2 */
            invokevirtual javax.management.MBeanException.getTargetException:()Ljava/lang/Exception;
            astore 12 /* wrappedExc */
        start local 12 // java.lang.Exception wrappedExc
        70: .line 3820
            new java.lang.RuntimeException
            dup
            aload 12 /* wrappedExc */
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 12 // java.lang.Exception wrappedExc
        end local 11 // javax.management.MBeanException exc2
        end local 10 // java.lang.String[] signature
        end local 9 // java.lang.Object[] params
        end local 8 // java.lang.String currRoleName
        71: .line 3772
      StackMap locals:
      StackMap stack:
            aload 7 /* roleNameIter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 39
        end local 7 // java.util.Iterator roleNameIter
        72: .line 3827
      StackMap locals:
      StackMap stack:
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationService;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
        73: .line 3828
            ldc "handleReferenceUnregistration"
        74: .line 3827
            invokevirtual java.util.logging.Logger.exiting:(Ljava/lang/String;Ljava/lang/String;)V
        75: .line 3829
            return
        end local 6 // boolean deleteRelFlag
        end local 5 // java.lang.Object relObj
        end local 4 // java.lang.String currRelTypeName
        end local 3 // java.util.List roleNameList
        end local 2 // javax.management.ObjectName objectName
        end local 1 // java.lang.String relationId
        end local 0 // javax.management.relation.RelationService this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   76     0               this  Ljavax/management/relation/RelationService;
            0   76     1         relationId  Ljava/lang/String;
            0   76     2         objectName  Ljavax/management/ObjectName;
            0   76     3       roleNameList  Ljava/util/List;
            4    5     4             excMsg  Ljava/lang/String;
           11   76     4    currRelTypeName  Ljava/lang/String;
           12   76     5             relObj  Ljava/lang/Object;
           13   76     6      deleteRelFlag  Z
           14   34     7       roleNameIter  Ljava/util/Iterator;
           18   33     8       currRoleName  Ljava/lang/String;
           20   33     9     currRoleRefNbr  I
           21   33    10  currRoleNewRefNbr  I
           22   33    11       currRoleInfo  Ljavax/management/relation/RoleInfo;
           27   28    12               exc1  Ljavax/management/relation/RelationTypeNotFoundException;
           29   30    12               exc2  Ljavax/management/relation/RoleInfoNotFoundException;
           31   33    12         chkMinFlag  Z
           38   72     7       roleNameIter  Ljava/util/Iterator;
           40   71     8       currRoleName  Ljava/lang/String;
           49   50     9               exc3  Ljavax/management/relation/RelationTypeNotFoundException;
           51   52     9               exc4  Ljavax/management/relation/InvalidRoleValueException;
           53   71     9             params  [Ljava/lang/Object;
           56   71    10          signature  [Ljava/lang/String;
           65   66    11               exc1  Ljavax/management/InstanceNotFoundException;
           67   68    11               exc3  Ljavax/management/ReflectionException;
           69   71    11               exc2  Ljavax/management/MBeanException;
           70   71    12         wrappedExc  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
          22    25      26  Class javax.management.relation.RelationTypeNotFoundException
          22    25      28  Class javax.management.relation.RoleInfoNotFoundException
          41    47      48  Class javax.management.relation.RelationTypeNotFoundException
          41    47      50  Class javax.management.relation.InvalidRoleValueException
          58    63      64  Class javax.management.InstanceNotFoundException
          58    63      66  Class javax.management.ReflectionException
          58    63      68  Class javax.management.MBeanException
    Exceptions:
      throws java.lang.IllegalArgumentException, javax.management.relation.RelationServiceNotRegisteredException, javax.management.relation.RelationNotFoundException, javax.management.relation.RoleNotFoundException
    MethodParameters:
              Name  Flags
      relationId    
      objectName    
      roleNameList  
}
SourceFile: "RelationService.java"
InnerClasses:
  public abstract Entry = java.util.Map$Entry of java.util.Map