public class javax.management.remote.rmi.RMIConnectorServer extends javax.management.remote.JMXConnectorServer
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: javax.management.remote.rmi.RMIConnectorServer
  super_class: javax.management.remote.JMXConnectorServer
{
  public static final java.lang.String JNDI_REBIND_ATTRIBUTE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "jmx.remote.jndi.rebind"

  public static final java.lang.String RMI_CLIENT_SOCKET_FACTORY_ATTRIBUTE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "jmx.remote.rmi.client.socket.factory"

  public static final java.lang.String RMI_SERVER_SOCKET_FACTORY_ATTRIBUTE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "jmx.remote.rmi.server.socket.factory"

  public static final java.lang.String CREDENTIALS_FILTER_PATTERN;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "jmx.remote.rmi.server.credentials.filter.pattern"

  public static final java.lang.String SERIAL_FILTER_PATTERN;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "jmx.remote.rmi.server.serial.filter.pattern"

  private static final char[] intToAlpha;
    descriptor: [C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static com.sun.jmx.remote.util.ClassLogger logger;
    descriptor: Lcom/sun/jmx/remote/util/ClassLogger;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private javax.management.remote.JMXServiceURL address;
    descriptor: Ljavax/management/remote/JMXServiceURL;
    flags: (0x0002) ACC_PRIVATE

  private javax.management.remote.rmi.RMIServerImpl rmiServerImpl;
    descriptor: Ljavax/management/remote/rmi/RMIServerImpl;
    flags: (0x0002) ACC_PRIVATE

  private final java.util.Map<java.lang.String, ?> attributes;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;*>;

  private java.lang.ClassLoader defaultClassLoader;
    descriptor: Ljava/lang/ClassLoader;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String boundJndiUrl;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private static final int CREATED;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  private static final int STARTED;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final int STOPPED;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

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

  private static final java.util.Set<javax.management.remote.rmi.RMIConnectorServer> openedServers;
    descriptor: Ljava/util/Set;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Set<Ljavax/management/remote/rmi/RMIConnectorServer;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 820
            bipush 64
            newarray 5
            dup
            iconst_0
         1: .line 821
            bipush 65
            castore
            dup
            iconst_1
            bipush 66
            castore
            dup
            iconst_2
            bipush 67
            castore
            dup
            iconst_3
            bipush 68
            castore
            dup
            iconst_4
            bipush 69
            castore
            dup
            iconst_5
            bipush 70
            castore
            dup
            bipush 6
            bipush 71
            castore
            dup
            bipush 7
            bipush 72
            castore
            dup
            bipush 8
            bipush 73
            castore
            dup
            bipush 9
            bipush 74
            castore
            dup
            bipush 10
            bipush 75
            castore
            dup
            bipush 11
            bipush 76
            castore
            dup
            bipush 12
            bipush 77
            castore
            dup
            bipush 13
         2: .line 822
            bipush 78
            castore
            dup
            bipush 14
            bipush 79
            castore
            dup
            bipush 15
            bipush 80
            castore
            dup
            bipush 16
            bipush 81
            castore
            dup
            bipush 17
            bipush 82
            castore
            dup
            bipush 18
            bipush 83
            castore
            dup
            bipush 19
            bipush 84
            castore
            dup
            bipush 20
            bipush 85
            castore
            dup
            bipush 21
            bipush 86
            castore
            dup
            bipush 22
            bipush 87
            castore
            dup
            bipush 23
            bipush 88
            castore
            dup
            bipush 24
            bipush 89
            castore
            dup
            bipush 25
            bipush 90
            castore
            dup
            bipush 26
         3: .line 823
            bipush 97
            castore
            dup
            bipush 27
            bipush 98
            castore
            dup
            bipush 28
            bipush 99
            castore
            dup
            bipush 29
            bipush 100
            castore
            dup
            bipush 30
            bipush 101
            castore
            dup
            bipush 31
            bipush 102
            castore
            dup
            bipush 32
            bipush 103
            castore
            dup
            bipush 33
            bipush 104
            castore
            dup
            bipush 34
            bipush 105
            castore
            dup
            bipush 35
            bipush 106
            castore
            dup
            bipush 36
            bipush 107
            castore
            dup
            bipush 37
            bipush 108
            castore
            dup
            bipush 38
            bipush 109
            castore
            dup
            bipush 39
         4: .line 824
            bipush 110
            castore
            dup
            bipush 40
            bipush 111
            castore
            dup
            bipush 41
            bipush 112
            castore
            dup
            bipush 42
            bipush 113
            castore
            dup
            bipush 43
            bipush 114
            castore
            dup
            bipush 44
            bipush 115
            castore
            dup
            bipush 45
            bipush 116
            castore
            dup
            bipush 46
            bipush 117
            castore
            dup
            bipush 47
            bipush 118
            castore
            dup
            bipush 48
            bipush 119
            castore
            dup
            bipush 49
            bipush 120
            castore
            dup
            bipush 50
            bipush 121
            castore
            dup
            bipush 51
            bipush 122
            castore
            dup
            bipush 52
         5: .line 825
            bipush 48
            castore
            dup
            bipush 53
            bipush 49
            castore
            dup
            bipush 54
            bipush 50
            castore
            dup
            bipush 55
            bipush 51
            castore
            dup
            bipush 56
            bipush 52
            castore
            dup
            bipush 57
            bipush 53
            castore
            dup
            bipush 58
            bipush 54
            castore
            dup
            bipush 59
            bipush 55
            castore
            dup
            bipush 60
            bipush 56
            castore
            dup
            bipush 61
            bipush 57
            castore
            dup
            bipush 62
            bipush 43
            castore
            dup
            bipush 63
            bipush 47
            castore
         6: .line 820
            putstatic javax.management.remote.rmi.RMIConnectorServer.intToAlpha:[C
         7: .line 843
            new com.sun.jmx.remote.util.ClassLogger
            dup
            ldc "javax.management.remote.rmi"
            ldc "RMIConnectorServer"
            invokespecial com.sun.jmx.remote.util.ClassLogger.<init>:(Ljava/lang/String;Ljava/lang/String;)V
         8: .line 842
            putstatic javax.management.remote.rmi.RMIConnectorServer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
         9: .line 859
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
        10: .line 858
            putstatic javax.management.remote.rmi.RMIConnectorServer.openedServers:Ljava/util/Set;
        11: .line 859
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(javax.management.remote.JMXServiceURL, java.util.Map<java.lang.String, ?>);
    descriptor: (Ljavax/management/remote/JMXServiceURL;Ljava/util/Map;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // javax.management.remote.rmi.RMIConnectorServer this
        start local 1 // javax.management.remote.JMXServiceURL url
        start local 2 // java.util.Map environment
         0: .line 185
            aload 0 /* this */
            aload 1 /* url */
            aload 2 /* environment */
            aconst_null
            invokespecial javax.management.remote.rmi.RMIConnectorServer.<init>:(Ljavax/management/remote/JMXServiceURL;Ljava/util/Map;Ljavax/management/MBeanServer;)V
         1: .line 186
            return
        end local 2 // java.util.Map environment
        end local 1 // javax.management.remote.JMXServiceURL url
        end local 0 // javax.management.remote.rmi.RMIConnectorServer this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Ljavax/management/remote/rmi/RMIConnectorServer;
            0    2     1          url  Ljavax/management/remote/JMXServiceURL;
            0    2     2  environment  Ljava/util/Map<Ljava/lang/String;*>;
    Exceptions:
      throws java.io.IOException
    Signature: (Ljavax/management/remote/JMXServiceURL;Ljava/util/Map<Ljava/lang/String;*>;)V
    MethodParameters:
             Name  Flags
      url          
      environment  

  public void <init>(javax.management.remote.JMXServiceURL, java.util.Map<java.lang.String, ?>, javax.management.MBeanServer);
    descriptor: (Ljavax/management/remote/JMXServiceURL;Ljava/util/Map;Ljavax/management/MBeanServer;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // javax.management.remote.rmi.RMIConnectorServer this
        start local 1 // javax.management.remote.JMXServiceURL url
        start local 2 // java.util.Map environment
        start local 3 // javax.management.MBeanServer mbeanServer
         0: .line 220
            aload 0 /* this */
            aload 1 /* url */
            aload 2 /* environment */
            aconst_null
            aload 3 /* mbeanServer */
            invokespecial javax.management.remote.rmi.RMIConnectorServer.<init>:(Ljavax/management/remote/JMXServiceURL;Ljava/util/Map;Ljavax/management/remote/rmi/RMIServerImpl;Ljavax/management/MBeanServer;)V
         1: .line 221
            return
        end local 3 // javax.management.MBeanServer mbeanServer
        end local 2 // java.util.Map environment
        end local 1 // javax.management.remote.JMXServiceURL url
        end local 0 // javax.management.remote.rmi.RMIConnectorServer this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Ljavax/management/remote/rmi/RMIConnectorServer;
            0    2     1          url  Ljavax/management/remote/JMXServiceURL;
            0    2     2  environment  Ljava/util/Map<Ljava/lang/String;*>;
            0    2     3  mbeanServer  Ljavax/management/MBeanServer;
    Exceptions:
      throws java.io.IOException
    Signature: (Ljavax/management/remote/JMXServiceURL;Ljava/util/Map<Ljava/lang/String;*>;Ljavax/management/MBeanServer;)V
    MethodParameters:
             Name  Flags
      url          
      environment  
      mbeanServer  

  public void <init>(javax.management.remote.JMXServiceURL, java.util.Map<java.lang.String, ?>, javax.management.remote.rmi.RMIServerImpl, javax.management.MBeanServer);
    descriptor: (Ljavax/management/remote/JMXServiceURL;Ljava/util/Map;Ljavax/management/remote/rmi/RMIServerImpl;Ljavax/management/MBeanServer;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=7, args_size=5
        start local 0 // javax.management.remote.rmi.RMIConnectorServer this
        start local 1 // javax.management.remote.JMXServiceURL url
        start local 2 // java.util.Map environment
        start local 3 // javax.management.remote.rmi.RMIServerImpl rmiServerImpl
        start local 4 // javax.management.MBeanServer mbeanServer
         0: .line 261
            aload 0 /* this */
            aload 4 /* mbeanServer */
            invokespecial javax.management.remote.JMXConnectorServer.<init>:(Ljavax/management/MBeanServer;)V
         1: .line 848
            aload 0 /* this */
            aconst_null
            putfield javax.management.remote.rmi.RMIConnectorServer.defaultClassLoader:Ljava/lang/ClassLoader;
         2: .line 857
            aload 0 /* this */
            iconst_0
            putfield javax.management.remote.rmi.RMIConnectorServer.state:I
         3: .line 263
            aload 1 /* url */
            ifnonnull 6
         4: .line 264
            new java.lang.IllegalArgumentException
            dup
            ldc "Null JMXServiceURL"
         5: .line 263
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 265
      StackMap locals: javax.management.remote.rmi.RMIConnectorServer javax.management.remote.JMXServiceURL java.util.Map javax.management.remote.rmi.RMIServerImpl javax.management.MBeanServer
      StackMap stack:
            aload 3 /* rmiServerImpl */
            ifnonnull 16
         7: .line 266
            aload 1 /* url */
            invokevirtual javax.management.remote.JMXServiceURL.getProtocol:()Ljava/lang/String;
            astore 5 /* prt */
        start local 5 // java.lang.String prt
         8: .line 267
            aload 5 /* prt */
            ifnull 9
            aload 5 /* prt */
            ldc "rmi"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 11
         9: .line 268
      StackMap locals: java.lang.String
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "Invalid protocol type: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* prt */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 6 /* msg */
        start local 6 // java.lang.String msg
        10: .line 269
            new java.net.MalformedURLException
            dup
            aload 6 /* msg */
            invokespecial java.net.MalformedURLException.<init>:(Ljava/lang/String;)V
            athrow
        end local 6 // java.lang.String msg
        11: .line 271
      StackMap locals:
      StackMap stack:
            aload 1 /* url */
            invokevirtual javax.management.remote.JMXServiceURL.getURLPath:()Ljava/lang/String;
            astore 6 /* urlPath */
        start local 6 // java.lang.String urlPath
        12: .line 272
            aload 6 /* urlPath */
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 16
        13: .line 273
            aload 6 /* urlPath */
            ldc "/"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 16
        14: .line 274
            aload 6 /* urlPath */
            ldc "/jndi/"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 16
        15: .line 277
            new java.net.MalformedURLException
            dup
            ldc "URL path must be empty or start with /jndi/"
            invokespecial java.net.MalformedURLException.<init>:(Ljava/lang/String;)V
            athrow
        end local 6 // java.lang.String urlPath
        end local 5 // java.lang.String prt
        16: .line 281
      StackMap locals:
      StackMap stack:
            aload 2 /* environment */
            ifnonnull 18
        17: .line 282
            aload 0 /* this */
            invokestatic java.util.Collections.emptyMap:()Ljava/util/Map;
            putfield javax.management.remote.rmi.RMIConnectorServer.attributes:Ljava/util/Map;
            goto 20
        18: .line 284
      StackMap locals:
      StackMap stack:
            aload 2 /* environment */
            invokestatic com.sun.jmx.remote.util.EnvHelp.checkAttributes:(Ljava/util/Map;)V
        19: .line 285
            aload 0 /* this */
            aload 2 /* environment */
            invokestatic java.util.Collections.unmodifiableMap:(Ljava/util/Map;)Ljava/util/Map;
            putfield javax.management.remote.rmi.RMIConnectorServer.attributes:Ljava/util/Map;
        20: .line 288
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* url */
            putfield javax.management.remote.rmi.RMIConnectorServer.address:Ljavax/management/remote/JMXServiceURL;
        21: .line 289
            aload 0 /* this */
            aload 3 /* rmiServerImpl */
            putfield javax.management.remote.rmi.RMIConnectorServer.rmiServerImpl:Ljavax/management/remote/rmi/RMIServerImpl;
        22: .line 290
            return
        end local 4 // javax.management.MBeanServer mbeanServer
        end local 3 // javax.management.remote.rmi.RMIServerImpl rmiServerImpl
        end local 2 // java.util.Map environment
        end local 1 // javax.management.remote.JMXServiceURL url
        end local 0 // javax.management.remote.rmi.RMIConnectorServer this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   23     0           this  Ljavax/management/remote/rmi/RMIConnectorServer;
            0   23     1            url  Ljavax/management/remote/JMXServiceURL;
            0   23     2    environment  Ljava/util/Map<Ljava/lang/String;*>;
            0   23     3  rmiServerImpl  Ljavax/management/remote/rmi/RMIServerImpl;
            0   23     4    mbeanServer  Ljavax/management/MBeanServer;
            8   16     5            prt  Ljava/lang/String;
           10   11     6            msg  Ljava/lang/String;
           12   16     6        urlPath  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    Signature: (Ljavax/management/remote/JMXServiceURL;Ljava/util/Map<Ljava/lang/String;*>;Ljavax/management/remote/rmi/RMIServerImpl;Ljavax/management/MBeanServer;)V
    MethodParameters:
               Name  Flags
      url            
      environment    
      rmiServerImpl  
      mbeanServer    

  public javax.management.remote.JMXConnector toJMXConnector(java.util.Map<java.lang.String, ?>);
    descriptor: (Ljava/util/Map;)Ljavax/management/remote/JMXConnector;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // javax.management.remote.rmi.RMIConnectorServer this
        start local 1 // java.util.Map env
         0: .line 318
            aload 0 /* this */
            invokevirtual javax.management.remote.rmi.RMIConnectorServer.isActive:()Z
            ifne 3
         1: .line 319
            new java.lang.IllegalStateException
            dup
            ldc "Connector is not active"
         2: .line 318
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 322
      StackMap locals:
      StackMap stack:
            new java.util.HashMap
            dup
         4: .line 323
            aload 0 /* this */
            getfield javax.management.remote.rmi.RMIConnectorServer.attributes:Ljava/util/Map;
            ifnonnull 5
            invokestatic java.util.Collections.emptyMap:()Ljava/util/Map;
            goto 6
         5: .line 324
      StackMap locals: javax.management.remote.rmi.RMIConnectorServer java.util.Map
      StackMap stack: new 3 new 3
            aload 0 /* this */
            getfield javax.management.remote.rmi.RMIConnectorServer.attributes:Ljava/util/Map;
         6: .line 322
      StackMap locals: javax.management.remote.rmi.RMIConnectorServer java.util.Map
      StackMap stack: new 3 new 3 java.util.Map
            invokespecial java.util.HashMap.<init>:(Ljava/util/Map;)V
            astore 2 /* usemap */
        start local 2 // java.util.Map usemap
         7: .line 326
            aload 1 /* env */
            ifnull 10
         8: .line 327
            aload 1 /* env */
            invokestatic com.sun.jmx.remote.util.EnvHelp.checkAttributes:(Ljava/util/Map;)V
         9: .line 328
            aload 2 /* usemap */
            aload 1 /* env */
            invokeinterface java.util.Map.putAll:(Ljava/util/Map;)V
        10: .line 331
      StackMap locals: java.util.Map
      StackMap stack:
            aload 2 /* usemap */
            invokestatic com.sun.jmx.remote.util.EnvHelp.filterAttributes:(Ljava/util/Map;)Ljava/util/Map;
            astore 2 /* usemap */
        11: .line 333
            aload 0 /* this */
            getfield javax.management.remote.rmi.RMIConnectorServer.rmiServerImpl:Ljavax/management/remote/rmi/RMIServerImpl;
            invokevirtual javax.management.remote.rmi.RMIServerImpl.toStub:()Ljava/rmi/Remote;
            checkcast javax.management.remote.rmi.RMIServer
            astore 3 /* stub */
        start local 3 // javax.management.remote.rmi.RMIServer stub
        12: .line 335
            new javax.management.remote.rmi.RMIConnector
            dup
            aload 3 /* stub */
            aload 2 /* usemap */
            invokespecial javax.management.remote.rmi.RMIConnector.<init>:(Ljavax/management/remote/rmi/RMIServer;Ljava/util/Map;)V
            areturn
        end local 3 // javax.management.remote.rmi.RMIServer stub
        end local 2 // java.util.Map usemap
        end local 1 // java.util.Map env
        end local 0 // javax.management.remote.rmi.RMIConnectorServer this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   13     0    this  Ljavax/management/remote/rmi/RMIConnectorServer;
            0   13     1     env  Ljava/util/Map<Ljava/lang/String;*>;
            7   13     2  usemap  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
           12   13     3    stub  Ljavax/management/remote/rmi/RMIServer;
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/util/Map<Ljava/lang/String;*>;)Ljavax/management/remote/JMXConnector;
    MethodParameters:
      Name  Flags
      env   

  public synchronized void start();
    descriptor: ()V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=5, locals=8, args_size=1
        start local 0 // javax.management.remote.rmi.RMIConnectorServer this
         0: .line 393
            getstatic javax.management.remote.rmi.RMIConnectorServer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            invokevirtual com.sun.jmx.remote.util.ClassLogger.traceOn:()Z
            istore 1 /* tracing */
        start local 1 // boolean tracing
         1: .line 395
            aload 0 /* this */
            getfield javax.management.remote.rmi.RMIConnectorServer.state:I
            iconst_1
            if_icmpne 4
         2: .line 396
            iload 1 /* tracing */
            ifeq 3
            getstatic javax.management.remote.rmi.RMIConnectorServer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "start"
            ldc "already started"
            invokevirtual com.sun.jmx.remote.util.ClassLogger.trace:(Ljava/lang/String;Ljava/lang/String;)V
         3: .line 397
      StackMap locals: int
      StackMap stack:
            return
         4: .line 398
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javax.management.remote.rmi.RMIConnectorServer.state:I
            iconst_2
            if_icmpne 7
         5: .line 399
            iload 1 /* tracing */
            ifeq 6
            getstatic javax.management.remote.rmi.RMIConnectorServer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "start"
            ldc "already stopped"
            invokevirtual com.sun.jmx.remote.util.ClassLogger.trace:(Ljava/lang/String;Ljava/lang/String;)V
         6: .line 400
      StackMap locals:
      StackMap stack:
            new java.io.IOException
            dup
            ldc "The server has been stopped."
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 403
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual javax.management.remote.rmi.RMIConnectorServer.getMBeanServer:()Ljavax/management/MBeanServer;
            ifnonnull 9
         8: .line 404
            new java.lang.IllegalStateException
            dup
            ldc "This connector server is not attached to an MBean server"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 410
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javax.management.remote.rmi.RMIConnectorServer.attributes:Ljava/util/Map;
            ifnull 19
        10: .line 414
            aload 0 /* this */
            getfield javax.management.remote.rmi.RMIConnectorServer.attributes:Ljava/util/Map;
            ldc "jmx.remote.x.access.file"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
        11: .line 413
            astore 2 /* accessFile */
        start local 2 // java.lang.String accessFile
        12: .line 415
            aload 2 /* accessFile */
            ifnull 19
        13: .line 421
            new com.sun.jmx.remote.security.MBeanServerFileAccessController
            dup
            aload 2 /* accessFile */
            invokespecial com.sun.jmx.remote.security.MBeanServerFileAccessController.<init>:(Ljava/lang/String;)V
            astore 3 /* mbsf */
        start local 3 // javax.management.remote.MBeanServerForwarder mbsf
        14: .line 422
            goto 18
        end local 3 // javax.management.remote.MBeanServerForwarder mbsf
      StackMap locals: javax.management.remote.rmi.RMIConnectorServer int java.lang.String
      StackMap stack: java.io.IOException
        15: astore 4 /* e */
        start local 4 // java.io.IOException e
        16: .line 424
            new java.lang.IllegalArgumentException
            dup
            aload 4 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            aload 4 /* e */
        17: .line 423
            invokestatic com.sun.jmx.remote.util.EnvHelp.initCause:(Ljava/lang/Throwable;Ljava/lang/Throwable;)Ljava/lang/Throwable;
            checkcast java.lang.IllegalArgumentException
            athrow
        end local 4 // java.io.IOException e
        start local 3 // javax.management.remote.MBeanServerForwarder mbsf
        18: .line 428
      StackMap locals: javax.management.remote.MBeanServerForwarder
      StackMap stack:
            aload 0 /* this */
            aload 3 /* mbsf */
            invokevirtual javax.management.remote.rmi.RMIConnectorServer.setMBeanServerForwarder:(Ljavax/management/remote/MBeanServerForwarder;)V
        end local 3 // javax.management.remote.MBeanServerForwarder mbsf
        end local 2 // java.lang.String accessFile
        19: .line 433
      StackMap locals:
      StackMap stack:
            iload 1 /* tracing */
            ifeq 20
            getstatic javax.management.remote.rmi.RMIConnectorServer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "start"
            ldc "setting default class loader"
            invokevirtual com.sun.jmx.remote.util.ClassLogger.trace:(Ljava/lang/String;Ljava/lang/String;)V
        20: .line 434
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
        21: .line 435
            aload 0 /* this */
            getfield javax.management.remote.rmi.RMIConnectorServer.attributes:Ljava/util/Map;
            aload 0 /* this */
            invokevirtual javax.management.remote.rmi.RMIConnectorServer.getMBeanServer:()Ljavax/management/MBeanServer;
        22: .line 434
            invokestatic com.sun.jmx.remote.util.EnvHelp.resolveServerClassLoader:(Ljava/util/Map;Ljavax/management/MBeanServer;)Ljava/lang/ClassLoader;
            putfield javax.management.remote.rmi.RMIConnectorServer.defaultClassLoader:Ljava/lang/ClassLoader;
        23: .line 436
            goto 28
      StackMap locals:
      StackMap stack: javax.management.InstanceNotFoundException
        24: astore 2 /* infc */
        start local 2 // javax.management.InstanceNotFoundException infc
        25: .line 438
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "ClassLoader not found: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* infc */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        26: .line 437
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            astore 3 /* x */
        start local 3 // java.lang.IllegalArgumentException x
        27: .line 439
            aload 3 /* x */
            aload 2 /* infc */
            invokestatic com.sun.jmx.remote.util.EnvHelp.initCause:(Ljava/lang/Throwable;Ljava/lang/Throwable;)Ljava/lang/Throwable;
            checkcast java.lang.IllegalArgumentException
            athrow
        end local 3 // java.lang.IllegalArgumentException x
        end local 2 // javax.management.InstanceNotFoundException infc
        28: .line 442
      StackMap locals:
      StackMap stack:
            iload 1 /* tracing */
            ifeq 29
            getstatic javax.management.remote.rmi.RMIConnectorServer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "start"
            ldc "setting RMIServer object"
            invokevirtual com.sun.jmx.remote.util.ClassLogger.trace:(Ljava/lang/String;Ljava/lang/String;)V
        29: .line 445
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javax.management.remote.rmi.RMIConnectorServer.rmiServerImpl:Ljavax/management/remote/rmi/RMIServerImpl;
            ifnull 32
        30: .line 446
            aload 0 /* this */
            getfield javax.management.remote.rmi.RMIConnectorServer.rmiServerImpl:Ljavax/management/remote/rmi/RMIServerImpl;
            astore 2 /* rmiServer */
        start local 2 // javax.management.remote.rmi.RMIServerImpl rmiServer
        31: goto 33
        end local 2 // javax.management.remote.rmi.RMIServerImpl rmiServer
        32: .line 448
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual javax.management.remote.rmi.RMIConnectorServer.newServer:()Ljavax/management/remote/rmi/RMIServerImpl;
            astore 2 /* rmiServer */
        start local 2 // javax.management.remote.rmi.RMIServerImpl rmiServer
        33: .line 450
      StackMap locals: javax.management.remote.rmi.RMIServerImpl
      StackMap stack:
            aload 2 /* rmiServer */
            aload 0 /* this */
            invokevirtual javax.management.remote.rmi.RMIConnectorServer.getMBeanServer:()Ljavax/management/MBeanServer;
            invokevirtual javax.management.remote.rmi.RMIServerImpl.setMBeanServer:(Ljavax/management/MBeanServer;)V
        34: .line 451
            aload 2 /* rmiServer */
            aload 0 /* this */
            getfield javax.management.remote.rmi.RMIConnectorServer.defaultClassLoader:Ljava/lang/ClassLoader;
            invokevirtual javax.management.remote.rmi.RMIServerImpl.setDefaultClassLoader:(Ljava/lang/ClassLoader;)V
        35: .line 452
            aload 2 /* rmiServer */
            aload 0 /* this */
            invokevirtual javax.management.remote.rmi.RMIServerImpl.setRMIConnectorServer:(Ljavax/management/remote/rmi/RMIConnectorServer;)V
        36: .line 453
            aload 2 /* rmiServer */
            invokevirtual javax.management.remote.rmi.RMIServerImpl.export:()V
        37: .line 456
            iload 1 /* tracing */
            ifeq 38
            getstatic javax.management.remote.rmi.RMIConnectorServer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "start"
            ldc "getting RMIServer object to export"
            invokevirtual com.sun.jmx.remote.util.ClassLogger.trace:(Ljava/lang/String;Ljava/lang/String;)V
        38: .line 457
      StackMap locals:
      StackMap stack:
            aload 2 /* rmiServer */
            aload 0 /* this */
            getfield javax.management.remote.rmi.RMIConnectorServer.attributes:Ljava/util/Map;
            invokestatic javax.management.remote.rmi.RMIConnectorServer.objectToBind:(Ljavax/management/remote/rmi/RMIServerImpl;Ljava/util/Map;)Ljavax/management/remote/rmi/RMIServer;
            astore 3 /* objref */
        start local 3 // javax.management.remote.rmi.RMIServer objref
        39: .line 459
            aload 0 /* this */
            getfield javax.management.remote.rmi.RMIConnectorServer.address:Ljavax/management/remote/JMXServiceURL;
            ifnull 58
            aload 0 /* this */
            getfield javax.management.remote.rmi.RMIConnectorServer.address:Ljavax/management/remote/JMXServiceURL;
            invokevirtual javax.management.remote.JMXServiceURL.getURLPath:()Ljava/lang/String;
            ldc "/jndi/"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 58
        40: .line 460
            aload 0 /* this */
            getfield javax.management.remote.rmi.RMIConnectorServer.address:Ljavax/management/remote/JMXServiceURL;
            invokevirtual javax.management.remote.JMXServiceURL.getURLPath:()Ljava/lang/String;
            bipush 6
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 4 /* jndiUrl */
        start local 4 // java.lang.String jndiUrl
        41: .line 462
            iload 1 /* tracing */
            ifeq 43
        42: .line 463
            getstatic javax.management.remote.rmi.RMIConnectorServer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "start"
            new java.lang.StringBuilder
            dup
            ldc "Using external directory: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* jndiUrl */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.sun.jmx.remote.util.ClassLogger.trace:(Ljava/lang/String;Ljava/lang/String;)V
        43: .line 465
      StackMap locals: javax.management.remote.rmi.RMIServer java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield javax.management.remote.rmi.RMIConnectorServer.attributes:Ljava/util/Map;
            ldc "jmx.remote.jndi.rebind"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 5 /* stringBoolean */
        start local 5 // java.lang.String stringBoolean
        44: .line 466
            aload 5 /* stringBoolean */
            invokestatic com.sun.jmx.remote.util.EnvHelp.computeBooleanFromString:(Ljava/lang/String;)Z
            istore 6 /* rebind */
        start local 6 // boolean rebind
        45: .line 468
            iload 1 /* tracing */
            ifeq 47
        46: .line 469
            getstatic javax.management.remote.rmi.RMIConnectorServer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "start"
            new java.lang.StringBuilder
            dup
            ldc "jmx.remote.jndi.rebind="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 6 /* rebind */
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.sun.jmx.remote.util.ClassLogger.trace:(Ljava/lang/String;Ljava/lang/String;)V
        47: .line 472
      StackMap locals: java.lang.String int
      StackMap stack:
            iload 1 /* tracing */
            ifeq 48
            getstatic javax.management.remote.rmi.RMIConnectorServer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "start"
            new java.lang.StringBuilder
            dup
            ldc "binding to "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* jndiUrl */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.sun.jmx.remote.util.ClassLogger.trace:(Ljava/lang/String;Ljava/lang/String;)V
        48: .line 474
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javax.management.remote.rmi.RMIConnectorServer.attributes:Ljava/util/Map;
            invokestatic com.sun.jmx.remote.util.EnvHelp.mapToHashtable:(Ljava/util/Map;)Ljava/util/Hashtable;
            astore 7 /* usemap */
        start local 7 // java.util.Hashtable usemap
        49: .line 476
            aload 0 /* this */
            aload 4 /* jndiUrl */
            aload 7 /* usemap */
            aload 3 /* objref */
            iload 6 /* rebind */
            invokevirtual javax.management.remote.rmi.RMIConnectorServer.bind:(Ljava/lang/String;Ljava/util/Hashtable;Ljavax/management/remote/rmi/RMIServer;Z)V
        50: .line 478
            aload 0 /* this */
            aload 4 /* jndiUrl */
            putfield javax.management.remote.rmi.RMIConnectorServer.boundJndiUrl:Ljava/lang/String;
        end local 7 // java.util.Hashtable usemap
        51: .line 479
            goto 75
      StackMap locals:
      StackMap stack: javax.naming.NamingException
        52: astore 7 /* e */
        start local 7 // javax.naming.NamingException e
        53: .line 481
            new java.lang.StringBuilder
            dup
            ldc "Cannot bind to URL ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* jndiUrl */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "]: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        54: .line 482
            aload 7 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        55: .line 481
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        56: .line 482
            aload 7 /* e */
        57: .line 481
            invokestatic javax.management.remote.rmi.RMIConnectorServer.newIOException:(Ljava/lang/String;Ljava/lang/Throwable;)Ljava/io/IOException;
            athrow
        end local 7 // javax.naming.NamingException e
        end local 6 // boolean rebind
        end local 5 // java.lang.String stringBoolean
        end local 4 // java.lang.String jndiUrl
        58: .line 486
      StackMap locals:
      StackMap stack:
            iload 1 /* tracing */
            ifeq 59
            getstatic javax.management.remote.rmi.RMIConnectorServer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "start"
            ldc "Encoding URL"
            invokevirtual com.sun.jmx.remote.util.ClassLogger.trace:(Ljava/lang/String;Ljava/lang/String;)V
        59: .line 488
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* objref */
            aload 0 /* this */
            getfield javax.management.remote.rmi.RMIConnectorServer.attributes:Ljava/util/Map;
            invokevirtual javax.management.remote.rmi.RMIConnectorServer.encodeStubInAddress:(Ljavax/management/remote/rmi/RMIServer;Ljava/util/Map;)V
        60: .line 490
            iload 1 /* tracing */
            ifeq 75
            getstatic javax.management.remote.rmi.RMIConnectorServer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "start"
            new java.lang.StringBuilder
            dup
            ldc "Encoded URL: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield javax.management.remote.rmi.RMIConnectorServer.address:Ljavax/management/remote/JMXServiceURL;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.sun.jmx.remote.util.ClassLogger.trace:(Ljava/lang/String;Ljava/lang/String;)V
        end local 3 // javax.management.remote.rmi.RMIServer objref
        61: .line 492
            goto 75
      StackMap locals: javax.management.remote.rmi.RMIConnectorServer int javax.management.remote.rmi.RMIServerImpl
      StackMap stack: java.lang.Exception
        62: astore 3 /* e */
        start local 3 // java.lang.Exception e
        63: .line 494
            aload 2 /* rmiServer */
            invokevirtual javax.management.remote.rmi.RMIServerImpl.close:()V
        64: .line 495
            goto 66
      StackMap locals: javax.management.remote.rmi.RMIConnectorServer int javax.management.remote.rmi.RMIServerImpl java.lang.Exception
      StackMap stack: java.lang.Exception
        65: pop
        66: .line 498
      StackMap locals:
      StackMap stack:
            aload 3 /* e */
            instanceof java.lang.RuntimeException
            ifeq 68
        67: .line 499
            aload 3 /* e */
            checkcast java.lang.RuntimeException
            athrow
        68: .line 500
      StackMap locals:
      StackMap stack:
            aload 3 /* e */
            instanceof java.io.IOException
            ifeq 70
        69: .line 501
            aload 3 /* e */
            checkcast java.io.IOException
            athrow
        70: .line 503
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "Got unexpected exception while starting the connector server: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        71: .line 505
            aload 3 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        72: .line 503
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        73: .line 505
            aload 3 /* e */
        74: .line 503
            invokestatic javax.management.remote.rmi.RMIConnectorServer.newIOException:(Ljava/lang/String;Ljava/lang/Throwable;)Ljava/io/IOException;
            athrow
        end local 3 // java.lang.Exception e
        75: .line 508
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* rmiServer */
            putfield javax.management.remote.rmi.RMIConnectorServer.rmiServerImpl:Ljavax/management/remote/rmi/RMIServerImpl;
        76: .line 510
            getstatic javax.management.remote.rmi.RMIConnectorServer.openedServers:Ljava/util/Set;
            dup
            astore 3
            monitorenter
        77: .line 511
            getstatic javax.management.remote.rmi.RMIConnectorServer.openedServers:Ljava/util/Set;
            aload 0 /* this */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        78: .line 510
            aload 3
            monitorexit
        79: goto 82
      StackMap locals: javax.management.remote.rmi.RMIConnectorServer int javax.management.remote.rmi.RMIServerImpl java.util.Set
      StackMap stack: java.lang.Throwable
        80: aload 3
            monitorexit
        81: athrow
        82: .line 514
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield javax.management.remote.rmi.RMIConnectorServer.state:I
        83: .line 516
            iload 1 /* tracing */
            ifeq 86
        84: .line 517
            getstatic javax.management.remote.rmi.RMIConnectorServer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "start"
            new java.lang.StringBuilder
            dup
            ldc "Connector Server Address = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield javax.management.remote.rmi.RMIConnectorServer.address:Ljavax/management/remote/JMXServiceURL;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.sun.jmx.remote.util.ClassLogger.trace:(Ljava/lang/String;Ljava/lang/String;)V
        85: .line 518
            getstatic javax.management.remote.rmi.RMIConnectorServer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "start"
            ldc "started."
            invokevirtual com.sun.jmx.remote.util.ClassLogger.trace:(Ljava/lang/String;Ljava/lang/String;)V
        86: .line 520
      StackMap locals:
      StackMap stack:
            return
        end local 2 // javax.management.remote.rmi.RMIServerImpl rmiServer
        end local 1 // boolean tracing
        end local 0 // javax.management.remote.rmi.RMIConnectorServer this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   87     0           this  Ljavax/management/remote/rmi/RMIConnectorServer;
            1   87     1        tracing  Z
           12   19     2     accessFile  Ljava/lang/String;
           14   15     3           mbsf  Ljavax/management/remote/MBeanServerForwarder;
           18   19     3           mbsf  Ljavax/management/remote/MBeanServerForwarder;
           16   18     4              e  Ljava/io/IOException;
           25   28     2           infc  Ljavax/management/InstanceNotFoundException;
           27   28     3              x  Ljava/lang/IllegalArgumentException;
           31   32     2      rmiServer  Ljavax/management/remote/rmi/RMIServerImpl;
           33   87     2      rmiServer  Ljavax/management/remote/rmi/RMIServerImpl;
           39   61     3         objref  Ljavax/management/remote/rmi/RMIServer;
           41   58     4        jndiUrl  Ljava/lang/String;
           44   58     5  stringBoolean  Ljava/lang/String;
           45   58     6         rebind  Z
           49   51     7         usemap  Ljava/util/Hashtable<**>;
           53   58     7              e  Ljavax/naming/NamingException;
           63   75     3              e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
          13    14      15  Class java.io.IOException
          19    23      24  Class javax.management.InstanceNotFoundException
          47    51      52  Class javax.naming.NamingException
          37    61      62  Class java.lang.Exception
          63    64      65  Class java.lang.Exception
          77    79      80  any
          80    81      80  any
    Exceptions:
      throws java.io.IOException

  public void stop();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=1
        start local 0 // javax.management.remote.rmi.RMIConnectorServer this
         0: .line 568
            getstatic javax.management.remote.rmi.RMIConnectorServer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            invokevirtual com.sun.jmx.remote.util.ClassLogger.traceOn:()Z
            istore 1 /* tracing */
        start local 1 // boolean tracing
         1: .line 570
            aload 0 /* this */
            dup
            astore 2
            monitorenter
         2: .line 571
            aload 0 /* this */
            getfield javax.management.remote.rmi.RMIConnectorServer.state:I
            iconst_2
            if_icmpne 6
         3: .line 572
            iload 1 /* tracing */
            ifeq 4
            getstatic javax.management.remote.rmi.RMIConnectorServer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "stop"
            ldc "already stopped."
            invokevirtual com.sun.jmx.remote.util.ClassLogger.trace:(Ljava/lang/String;Ljava/lang/String;)V
         4: .line 573
      StackMap locals: int javax.management.remote.rmi.RMIConnectorServer
      StackMap stack:
            aload 2
            monitorexit
         5: return
         6: .line 574
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javax.management.remote.rmi.RMIConnectorServer.state:I
            ifne 8
         7: .line 575
            iload 1 /* tracing */
            ifeq 8
            getstatic javax.management.remote.rmi.RMIConnectorServer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "stop"
            ldc "not started yet."
            invokevirtual com.sun.jmx.remote.util.ClassLogger.trace:(Ljava/lang/String;Ljava/lang/String;)V
         8: .line 578
      StackMap locals:
      StackMap stack:
            iload 1 /* tracing */
            ifeq 9
            getstatic javax.management.remote.rmi.RMIConnectorServer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "stop"
            ldc "stopping."
            invokevirtual com.sun.jmx.remote.util.ClassLogger.trace:(Ljava/lang/String;Ljava/lang/String;)V
         9: .line 579
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_2
            putfield javax.management.remote.rmi.RMIConnectorServer.state:I
        10: .line 570
            aload 2
            monitorexit
        11: goto 14
      StackMap locals:
      StackMap stack: java.lang.Throwable
        12: aload 2
            monitorexit
        13: athrow
        14: .line 582
      StackMap locals:
      StackMap stack:
            getstatic javax.management.remote.rmi.RMIConnectorServer.openedServers:Ljava/util/Set;
            dup
            astore 2
            monitorenter
        15: .line 583
            getstatic javax.management.remote.rmi.RMIConnectorServer.openedServers:Ljava/util/Set;
            aload 0 /* this */
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
        16: .line 582
            aload 2
            monitorexit
        17: goto 20
      StackMap locals: javax.management.remote.rmi.RMIConnectorServer int java.util.Set
      StackMap stack: java.lang.Throwable
        18: aload 2
            monitorexit
        19: athrow
        20: .line 586
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 2 /* exception */
        start local 2 // java.io.IOException exception
        21: .line 589
            aload 0 /* this */
            getfield javax.management.remote.rmi.RMIConnectorServer.rmiServerImpl:Ljavax/management/remote/rmi/RMIServerImpl;
            ifnull 29
        22: .line 591
            iload 1 /* tracing */
            ifeq 23
            getstatic javax.management.remote.rmi.RMIConnectorServer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "stop"
            ldc "closing RMI server."
            invokevirtual com.sun.jmx.remote.util.ClassLogger.trace:(Ljava/lang/String;Ljava/lang/String;)V
        23: .line 592
      StackMap locals: java.io.IOException
      StackMap stack:
            aload 0 /* this */
            getfield javax.management.remote.rmi.RMIConnectorServer.rmiServerImpl:Ljavax/management/remote/rmi/RMIServerImpl;
            invokevirtual javax.management.remote.rmi.RMIServerImpl.close:()V
        24: .line 593
            goto 29
      StackMap locals:
      StackMap stack: java.io.IOException
        25: astore 3 /* e */
        start local 3 // java.io.IOException e
        26: .line 594
            iload 1 /* tracing */
            ifeq 27
            getstatic javax.management.remote.rmi.RMIConnectorServer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "stop"
            new java.lang.StringBuilder
            dup
            ldc "failed to close RMI server: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.sun.jmx.remote.util.ClassLogger.trace:(Ljava/lang/String;Ljava/lang/String;)V
        27: .line 595
      StackMap locals: java.io.IOException
      StackMap stack:
            getstatic javax.management.remote.rmi.RMIConnectorServer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debugOn:()Z
            ifeq 28
            getstatic javax.management.remote.rmi.RMIConnectorServer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "stop"
            aload 3 /* e */
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/Throwable;)V
        28: .line 596
      StackMap locals:
      StackMap stack:
            aload 3 /* e */
            astore 2 /* exception */
        end local 3 // java.io.IOException e
        29: .line 600
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javax.management.remote.rmi.RMIConnectorServer.boundJndiUrl:Ljava/lang/String;
            ifnull 45
        30: .line 602
            iload 1 /* tracing */
            ifeq 34
        31: .line 603
            getstatic javax.management.remote.rmi.RMIConnectorServer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "stop"
        32: .line 604
            new java.lang.StringBuilder
            dup
            ldc "unbind from external directory: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield javax.management.remote.rmi.RMIConnectorServer.boundJndiUrl:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        33: .line 603
            invokevirtual com.sun.jmx.remote.util.ClassLogger.trace:(Ljava/lang/String;Ljava/lang/String;)V
        34: .line 606
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javax.management.remote.rmi.RMIConnectorServer.attributes:Ljava/util/Map;
            invokestatic com.sun.jmx.remote.util.EnvHelp.mapToHashtable:(Ljava/util/Map;)Ljava/util/Hashtable;
            astore 3 /* usemap */
        start local 3 // java.util.Hashtable usemap
        35: .line 609
            new javax.naming.InitialContext
            dup
            aload 3 /* usemap */
            invokespecial javax.naming.InitialContext.<init>:(Ljava/util/Hashtable;)V
        36: .line 608
            astore 4 /* ctx */
        start local 4 // javax.naming.InitialContext ctx
        37: .line 611
            aload 4 /* ctx */
            aload 0 /* this */
            getfield javax.management.remote.rmi.RMIConnectorServer.boundJndiUrl:Ljava/lang/String;
            invokevirtual javax.naming.InitialContext.unbind:(Ljava/lang/String;)V
        38: .line 613
            aload 4 /* ctx */
            invokevirtual javax.naming.InitialContext.close:()V
        end local 4 // javax.naming.InitialContext ctx
        end local 3 // java.util.Hashtable usemap
        39: .line 614
            goto 45
      StackMap locals:
      StackMap stack: javax.naming.NamingException
        40: astore 3 /* e */
        start local 3 // javax.naming.NamingException e
        41: .line 615
            iload 1 /* tracing */
            ifeq 42
            getstatic javax.management.remote.rmi.RMIConnectorServer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "stop"
            new java.lang.StringBuilder
            dup
            ldc "failed to unbind RMI server: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.sun.jmx.remote.util.ClassLogger.trace:(Ljava/lang/String;Ljava/lang/String;)V
        42: .line 616
      StackMap locals: javax.naming.NamingException
      StackMap stack:
            getstatic javax.management.remote.rmi.RMIConnectorServer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debugOn:()Z
            ifeq 43
            getstatic javax.management.remote.rmi.RMIConnectorServer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "stop"
            aload 3 /* e */
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/Throwable;)V
        43: .line 618
      StackMap locals:
      StackMap stack:
            aload 2 /* exception */
            ifnonnull 45
        44: .line 619
            new java.lang.StringBuilder
            dup
            ldc "Cannot bind to URL: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 3 /* e */
            invokestatic javax.management.remote.rmi.RMIConnectorServer.newIOException:(Ljava/lang/String;Ljava/lang/Throwable;)Ljava/io/IOException;
            astore 2 /* exception */
        end local 3 // javax.naming.NamingException e
        45: .line 623
      StackMap locals:
      StackMap stack:
            aload 2 /* exception */
            ifnull 46
            aload 2 /* exception */
            athrow
        46: .line 625
      StackMap locals:
      StackMap stack:
            iload 1 /* tracing */
            ifeq 47
            getstatic javax.management.remote.rmi.RMIConnectorServer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "stop"
            ldc "stopped"
            invokevirtual com.sun.jmx.remote.util.ClassLogger.trace:(Ljava/lang/String;Ljava/lang/String;)V
        47: .line 626
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.io.IOException exception
        end local 1 // boolean tracing
        end local 0 // javax.management.remote.rmi.RMIConnectorServer this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   48     0       this  Ljavax/management/remote/rmi/RMIConnectorServer;
            1   48     1    tracing  Z
           21   48     2  exception  Ljava/io/IOException;
           26   29     3          e  Ljava/io/IOException;
           35   39     3     usemap  Ljava/util/Hashtable<**>;
           37   39     4        ctx  Ljavax/naming/InitialContext;
           41   45     3          e  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           2     5      12  any
           6    11      12  any
          12    13      12  any
          15    17      18  any
          18    19      18  any
          22    24      25  Class java.io.IOException
          30    39      40  Class javax.naming.NamingException
    Exceptions:
      throws java.io.IOException

  public synchronized boolean isActive();
    descriptor: ()Z
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // javax.management.remote.rmi.RMIConnectorServer this
         0: .line 629
            aload 0 /* this */
            getfield javax.management.remote.rmi.RMIConnectorServer.state:I
            iconst_1
            if_icmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // javax.management.remote.rmi.RMIConnectorServer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljavax/management/remote/rmi/RMIConnectorServer;

  public javax.management.remote.JMXServiceURL getAddress();
    descriptor: ()Ljavax/management/remote/JMXServiceURL;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.management.remote.rmi.RMIConnectorServer this
         0: .line 633
            aload 0 /* this */
            invokevirtual javax.management.remote.rmi.RMIConnectorServer.isActive:()Z
            ifne 2
         1: .line 634
            aconst_null
            areturn
         2: .line 635
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javax.management.remote.rmi.RMIConnectorServer.address:Ljavax/management/remote/JMXServiceURL;
            areturn
        end local 0 // javax.management.remote.rmi.RMIConnectorServer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljavax/management/remote/rmi/RMIConnectorServer;

  public java.util.Map<java.lang.String, ?> getAttributes();
    descriptor: ()Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // javax.management.remote.rmi.RMIConnectorServer this
         0: .line 639
            aload 0 /* this */
            getfield javax.management.remote.rmi.RMIConnectorServer.attributes:Ljava/util/Map;
            invokestatic com.sun.jmx.remote.util.EnvHelp.filterAttributes:(Ljava/util/Map;)Ljava/util/Map;
            astore 1 /* map */
        start local 1 // java.util.Map map
         1: .line 640
            aload 1 /* map */
            invokestatic java.util.Collections.unmodifiableMap:(Ljava/util/Map;)Ljava/util/Map;
            areturn
        end local 1 // java.util.Map map
        end local 0 // javax.management.remote.rmi.RMIConnectorServer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljavax/management/remote/rmi/RMIConnectorServer;
            1    2     1   map  Ljava/util/Map<Ljava/lang/String;*>;
    Signature: ()Ljava/util/Map<Ljava/lang/String;*>;

  public synchronized void setMBeanServerForwarder(javax.management.remote.MBeanServerForwarder);
    descriptor: (Ljavax/management/remote/MBeanServerForwarder;)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // javax.management.remote.rmi.RMIConnectorServer this
        start local 1 // javax.management.remote.MBeanServerForwarder mbsf
         0: .line 646
            aload 0 /* this */
            aload 1 /* mbsf */
            invokespecial javax.management.remote.JMXConnectorServer.setMBeanServerForwarder:(Ljavax/management/remote/MBeanServerForwarder;)V
         1: .line 647
            aload 0 /* this */
            getfield javax.management.remote.rmi.RMIConnectorServer.rmiServerImpl:Ljavax/management/remote/rmi/RMIServerImpl;
            ifnull 3
         2: .line 648
            aload 0 /* this */
            getfield javax.management.remote.rmi.RMIConnectorServer.rmiServerImpl:Ljavax/management/remote/rmi/RMIServerImpl;
            aload 0 /* this */
            invokevirtual javax.management.remote.rmi.RMIConnectorServer.getMBeanServer:()Ljavax/management/MBeanServer;
            invokevirtual javax.management.remote.rmi.RMIServerImpl.setMBeanServer:(Ljavax/management/MBeanServer;)V
         3: .line 649
      StackMap locals:
      StackMap stack:
            return
        end local 1 // javax.management.remote.MBeanServerForwarder mbsf
        end local 0 // javax.management.remote.rmi.RMIConnectorServer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljavax/management/remote/rmi/RMIConnectorServer;
            0    4     1  mbsf  Ljavax/management/remote/MBeanServerForwarder;
    MethodParameters:
      Name  Flags
      mbsf  

  protected void connectionOpened(java.lang.String, java.lang.String, java.lang.Object);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // javax.management.remote.rmi.RMIConnectorServer this
        start local 1 // java.lang.String connectionId
        start local 2 // java.lang.String message
        start local 3 // java.lang.Object userData
         0: .line 658
            aload 0 /* this */
            aload 1 /* connectionId */
            aload 2 /* message */
            aload 3 /* userData */
            invokespecial javax.management.remote.JMXConnectorServer.connectionOpened:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
         1: .line 659
            return
        end local 3 // java.lang.Object userData
        end local 2 // java.lang.String message
        end local 1 // java.lang.String connectionId
        end local 0 // javax.management.remote.rmi.RMIConnectorServer this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Ljavax/management/remote/rmi/RMIConnectorServer;
            0    2     1  connectionId  Ljava/lang/String;
            0    2     2       message  Ljava/lang/String;
            0    2     3      userData  Ljava/lang/Object;
    MethodParameters:
              Name  Flags
      connectionId  
      message       
      userData      

  protected void connectionClosed(java.lang.String, java.lang.String, java.lang.Object);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // javax.management.remote.rmi.RMIConnectorServer this
        start local 1 // java.lang.String connectionId
        start local 2 // java.lang.String message
        start local 3 // java.lang.Object userData
         0: .line 664
            aload 0 /* this */
            aload 1 /* connectionId */
            aload 2 /* message */
            aload 3 /* userData */
            invokespecial javax.management.remote.JMXConnectorServer.connectionClosed:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
         1: .line 665
            return
        end local 3 // java.lang.Object userData
        end local 2 // java.lang.String message
        end local 1 // java.lang.String connectionId
        end local 0 // javax.management.remote.rmi.RMIConnectorServer this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Ljavax/management/remote/rmi/RMIConnectorServer;
            0    2     1  connectionId  Ljava/lang/String;
            0    2     2       message  Ljava/lang/String;
            0    2     3      userData  Ljava/lang/Object;
    MethodParameters:
              Name  Flags
      connectionId  
      message       
      userData      

  protected void connectionFailed(java.lang.String, java.lang.String, java.lang.Object);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // javax.management.remote.rmi.RMIConnectorServer this
        start local 1 // java.lang.String connectionId
        start local 2 // java.lang.String message
        start local 3 // java.lang.Object userData
         0: .line 670
            aload 0 /* this */
            aload 1 /* connectionId */
            aload 2 /* message */
            aload 3 /* userData */
            invokespecial javax.management.remote.JMXConnectorServer.connectionFailed:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
         1: .line 671
            return
        end local 3 // java.lang.Object userData
        end local 2 // java.lang.String message
        end local 1 // java.lang.String connectionId
        end local 0 // javax.management.remote.rmi.RMIConnectorServer this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Ljavax/management/remote/rmi/RMIConnectorServer;
            0    2     1  connectionId  Ljava/lang/String;
            0    2     2       message  Ljava/lang/String;
            0    2     3      userData  Ljava/lang/Object;
    MethodParameters:
              Name  Flags
      connectionId  
      message       
      userData      

  void bind(java.lang.String, java.util.Hashtable<?, ?>, javax.management.remote.rmi.RMIServer, );
    descriptor: (Ljava/lang/String;Ljava/util/Hashtable;Ljavax/management/remote/rmi/RMIServer;Z)V
    flags: (0x0000) 
    Code:
      stack=3, locals=6, args_size=5
        start local 0 // javax.management.remote.rmi.RMIConnectorServer this
        start local 1 // java.lang.String jndiUrl
        start local 2 // java.util.Hashtable attributes
        start local 3 // javax.management.remote.rmi.RMIServer rmiServer
        start local 4 // boolean rebind
         0: .line 688
            new javax.naming.InitialContext
            dup
            aload 2 /* attributes */
            invokespecial javax.naming.InitialContext.<init>:(Ljava/util/Hashtable;)V
         1: .line 687
            astore 5 /* ctx */
        start local 5 // javax.naming.InitialContext ctx
         2: .line 690
            iload 4 /* rebind */
            ifeq 4
         3: .line 691
            aload 5 /* ctx */
            aload 1 /* jndiUrl */
            aload 3 /* rmiServer */
            invokevirtual javax.naming.InitialContext.rebind:(Ljava/lang/String;Ljava/lang/Object;)V
            goto 5
         4: .line 693
      StackMap locals: javax.naming.InitialContext
      StackMap stack:
            aload 5 /* ctx */
            aload 1 /* jndiUrl */
            aload 3 /* rmiServer */
            invokevirtual javax.naming.InitialContext.bind:(Ljava/lang/String;Ljava/lang/Object;)V
         5: .line 694
      StackMap locals:
      StackMap stack:
            aload 5 /* ctx */
            invokevirtual javax.naming.InitialContext.close:()V
         6: .line 695
            return
        end local 5 // javax.naming.InitialContext ctx
        end local 4 // boolean rebind
        end local 3 // javax.management.remote.rmi.RMIServer rmiServer
        end local 2 // java.util.Hashtable attributes
        end local 1 // java.lang.String jndiUrl
        end local 0 // javax.management.remote.rmi.RMIConnectorServer this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Ljavax/management/remote/rmi/RMIConnectorServer;
            0    7     1     jndiUrl  Ljava/lang/String;
            0    7     2  attributes  Ljava/util/Hashtable<**>;
            0    7     3   rmiServer  Ljavax/management/remote/rmi/RMIServer;
            0    7     4      rebind  Z
            2    7     5         ctx  Ljavax/naming/InitialContext;
    Exceptions:
      throws javax.naming.NamingException, java.net.MalformedURLException
    Signature: (Ljava/lang/String;Ljava/util/Hashtable<**>;Ljavax/management/remote/rmi/RMIServer;Z)V
    MethodParameters:
            Name  Flags
      jndiUrl     
      attributes  
      rmiServer   
      rebind      

  javax.management.remote.rmi.RMIServerImpl newServer();
    descriptor: ()Ljavax/management/remote/rmi/RMIServerImpl;
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // javax.management.remote.rmi.RMIConnectorServer this
         0: .line 702
            aload 0 /* this */
            getfield javax.management.remote.rmi.RMIConnectorServer.address:Ljavax/management/remote/JMXServiceURL;
            ifnonnull 3
         1: .line 703
            iconst_0
            istore 1 /* port */
        start local 1 // int port
         2: goto 4
        end local 1 // int port
         3: .line 705
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javax.management.remote.rmi.RMIConnectorServer.address:Ljavax/management/remote/JMXServiceURL;
            invokevirtual javax.management.remote.JMXServiceURL.getPort:()I
            istore 1 /* port */
        start local 1 // int port
         4: .line 707
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield javax.management.remote.rmi.RMIConnectorServer.attributes:Ljava/util/Map;
            iload 1 /* port */
            invokestatic javax.management.remote.rmi.RMIConnectorServer.newJRMPServer:(Ljava/util/Map;I)Ljavax/management/remote/rmi/RMIServerImpl;
            areturn
        end local 1 // int port
        end local 0 // javax.management.remote.rmi.RMIConnectorServer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljavax/management/remote/rmi/RMIConnectorServer;
            2    3     1  port  I
            4    5     1  port  I
    Exceptions:
      throws java.io.IOException

  private void encodeStubInAddress(javax.management.remote.rmi.RMIServer, java.util.Map<java.lang.String, ?>);
    descriptor: (Ljavax/management/remote/rmi/RMIServer;Ljava/util/Map;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=7, args_size=3
        start local 0 // javax.management.remote.rmi.RMIConnectorServer this
        start local 1 // javax.management.remote.rmi.RMIServer rmiServer
        start local 2 // java.util.Map attributes
         0: .line 723
            aload 0 /* this */
            getfield javax.management.remote.rmi.RMIConnectorServer.address:Ljavax/management/remote/JMXServiceURL;
            ifnonnull 5
         1: .line 724
            ldc "rmi"
            astore 3 /* protocol */
        start local 3 // java.lang.String protocol
         2: .line 725
            aconst_null
            astore 4 /* host */
        start local 4 // java.lang.String host
         3: .line 726
            iconst_0
            istore 5 /* port */
        start local 5 // int port
         4: .line 727
            goto 10
        end local 5 // int port
        end local 4 // java.lang.String host
        end local 3 // java.lang.String protocol
         5: .line 728
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javax.management.remote.rmi.RMIConnectorServer.address:Ljavax/management/remote/JMXServiceURL;
            invokevirtual javax.management.remote.JMXServiceURL.getProtocol:()Ljava/lang/String;
            astore 3 /* protocol */
        start local 3 // java.lang.String protocol
         6: .line 729
            aload 0 /* this */
            getfield javax.management.remote.rmi.RMIConnectorServer.address:Ljavax/management/remote/JMXServiceURL;
            invokevirtual javax.management.remote.JMXServiceURL.getHost:()Ljava/lang/String;
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 7
            aconst_null
            goto 8
      StackMap locals: java.lang.String
      StackMap stack:
         7: aload 0 /* this */
            getfield javax.management.remote.rmi.RMIConnectorServer.address:Ljavax/management/remote/JMXServiceURL;
            invokevirtual javax.management.remote.JMXServiceURL.getHost:()Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
         8: astore 4 /* host */
        start local 4 // java.lang.String host
         9: .line 730
            aload 0 /* this */
            getfield javax.management.remote.rmi.RMIConnectorServer.address:Ljavax/management/remote/JMXServiceURL;
            invokevirtual javax.management.remote.JMXServiceURL.getPort:()I
            istore 5 /* port */
        start local 5 // int port
        10: .line 733
      StackMap locals: java.lang.String int
      StackMap stack:
            aload 1 /* rmiServer */
            aload 2 /* attributes */
            invokestatic javax.management.remote.rmi.RMIConnectorServer.encodeStub:(Ljavax/management/remote/rmi/RMIServer;Ljava/util/Map;)Ljava/lang/String;
            astore 6 /* urlPath */
        start local 6 // java.lang.String urlPath
        11: .line 735
            aload 0 /* this */
            new javax.management.remote.JMXServiceURL
            dup
            aload 3 /* protocol */
            aload 4 /* host */
            iload 5 /* port */
            aload 6 /* urlPath */
            invokespecial javax.management.remote.JMXServiceURL.<init>:(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V
            putfield javax.management.remote.rmi.RMIConnectorServer.address:Ljavax/management/remote/JMXServiceURL;
        12: .line 736
            return
        end local 6 // java.lang.String urlPath
        end local 5 // int port
        end local 4 // java.lang.String host
        end local 3 // java.lang.String protocol
        end local 2 // java.util.Map attributes
        end local 1 // javax.management.remote.rmi.RMIServer rmiServer
        end local 0 // javax.management.remote.rmi.RMIConnectorServer this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   13     0        this  Ljavax/management/remote/rmi/RMIConnectorServer;
            0   13     1   rmiServer  Ljavax/management/remote/rmi/RMIServer;
            0   13     2  attributes  Ljava/util/Map<Ljava/lang/String;*>;
            2    5     3    protocol  Ljava/lang/String;
            6   13     3    protocol  Ljava/lang/String;
            3    5     4        host  Ljava/lang/String;
            9   13     4        host  Ljava/lang/String;
            4    5     5        port  I
           10   13     5        port  I
           11   13     6     urlPath  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    Signature: (Ljavax/management/remote/rmi/RMIServer;Ljava/util/Map<Ljava/lang/String;*>;)V
    MethodParameters:
            Name  Flags
      rmiServer   
      attributes  

  static java.lang.String encodeStub(javax.management.remote.rmi.RMIServer, java.util.Map<java.lang.String, ?>);
    descriptor: (Ljavax/management/remote/rmi/RMIServer;Ljava/util/Map;)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // javax.management.remote.rmi.RMIServer rmiServer
        start local 1 // java.util.Map env
         0: .line 743
            new java.lang.StringBuilder
            dup
            ldc "/stub/"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* rmiServer */
            aload 1 /* env */
            invokestatic javax.management.remote.rmi.RMIConnectorServer.encodeJRMPStub:(Ljavax/management/remote/rmi/RMIServer;Ljava/util/Map;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.util.Map env
        end local 0 // javax.management.remote.rmi.RMIServer rmiServer
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0  rmiServer  Ljavax/management/remote/rmi/RMIServer;
            0    1     1        env  Ljava/util/Map<Ljava/lang/String;*>;
    Exceptions:
      throws java.io.IOException
    Signature: (Ljavax/management/remote/rmi/RMIServer;Ljava/util/Map<Ljava/lang/String;*>;)Ljava/lang/String;
    MethodParameters:
           Name  Flags
      rmiServer  
      env        

  static java.lang.String encodeJRMPStub(javax.management.remote.rmi.RMIServer, java.util.Map<java.lang.String, ?>);
    descriptor: (Ljavax/management/remote/rmi/RMIServer;Ljava/util/Map;)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // javax.management.remote.rmi.RMIServer rmiServer
        start local 1 // java.util.Map env
         0: .line 749
            new java.io.ByteArrayOutputStream
            dup
            invokespecial java.io.ByteArrayOutputStream.<init>:()V
            astore 2 /* bout */
        start local 2 // java.io.ByteArrayOutputStream bout
         1: .line 750
            new java.io.ObjectOutputStream
            dup
            aload 2 /* bout */
            invokespecial java.io.ObjectOutputStream.<init>:(Ljava/io/OutputStream;)V
            astore 3 /* oout */
        start local 3 // java.io.ObjectOutputStream oout
         2: .line 751
            aload 3 /* oout */
            aload 0 /* rmiServer */
            invokevirtual java.io.ObjectOutputStream.writeObject:(Ljava/lang/Object;)V
         3: .line 752
            aload 3 /* oout */
            invokevirtual java.io.ObjectOutputStream.close:()V
         4: .line 753
            aload 2 /* bout */
            invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
            astore 4 /* bytes */
        start local 4 // byte[] bytes
         5: .line 754
            aload 4 /* bytes */
            invokestatic javax.management.remote.rmi.RMIConnectorServer.byteArrayToBase64:([B)Ljava/lang/String;
            areturn
        end local 4 // byte[] bytes
        end local 3 // java.io.ObjectOutputStream oout
        end local 2 // java.io.ByteArrayOutputStream bout
        end local 1 // java.util.Map env
        end local 0 // javax.management.remote.rmi.RMIServer rmiServer
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0  rmiServer  Ljavax/management/remote/rmi/RMIServer;
            0    6     1        env  Ljava/util/Map<Ljava/lang/String;*>;
            1    6     2       bout  Ljava/io/ByteArrayOutputStream;
            2    6     3       oout  Ljava/io/ObjectOutputStream;
            5    6     4      bytes  [B
    Exceptions:
      throws java.io.IOException
    Signature: (Ljavax/management/remote/rmi/RMIServer;Ljava/util/Map<Ljava/lang/String;*>;)Ljava/lang/String;
    MethodParameters:
           Name  Flags
      rmiServer  
      env        

  private static javax.management.remote.rmi.RMIServer objectToBind(javax.management.remote.rmi.RMIServerImpl, java.util.Map<java.lang.String, ?>);
    descriptor: (Ljavax/management/remote/rmi/RMIServerImpl;Ljava/util/Map;)Ljavax/management/remote/rmi/RMIServer;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // javax.management.remote.rmi.RMIServerImpl rmiServer
        start local 1 // java.util.Map env
         0: .line 764
            aload 0 /* rmiServer */
            invokevirtual javax.management.remote.rmi.RMIServerImpl.toStub:()Ljava/rmi/Remote;
            checkcast javax.management.remote.rmi.RMIServer
            areturn
        end local 1 // java.util.Map env
        end local 0 // javax.management.remote.rmi.RMIServerImpl rmiServer
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0  rmiServer  Ljavax/management/remote/rmi/RMIServerImpl;
            0    1     1        env  Ljava/util/Map<Ljava/lang/String;*>;
    Exceptions:
      throws java.io.IOException
    Signature: (Ljavax/management/remote/rmi/RMIServerImpl;Ljava/util/Map<Ljava/lang/String;*>;)Ljavax/management/remote/rmi/RMIServer;
    MethodParameters:
           Name  Flags
      rmiServer  
      env        

  private static javax.management.remote.rmi.RMIServerImpl newJRMPServer(java.util.Map<java.lang.String, ?>, int);
    descriptor: (Ljava/util/Map;I)Ljavax/management/remote/rmi/RMIServerImpl;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=4, args_size=2
        start local 0 // java.util.Map env
        start local 1 // int port
         0: .line 770
            aload 0 /* env */
            ldc "jmx.remote.rmi.client.socket.factory"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.rmi.server.RMIClientSocketFactory
         1: .line 769
            astore 2 /* csf */
        start local 2 // java.rmi.server.RMIClientSocketFactory csf
         2: .line 772
            aload 0 /* env */
            ldc "jmx.remote.rmi.server.socket.factory"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.rmi.server.RMIServerSocketFactory
         3: .line 771
            astore 3 /* ssf */
        start local 3 // java.rmi.server.RMIServerSocketFactory ssf
         4: .line 773
            new javax.management.remote.rmi.RMIJRMPServerImpl
            dup
            iload 1 /* port */
            aload 2 /* csf */
            aload 3 /* ssf */
            aload 0 /* env */
            invokespecial javax.management.remote.rmi.RMIJRMPServerImpl.<init>:(ILjava/rmi/server/RMIClientSocketFactory;Ljava/rmi/server/RMIServerSocketFactory;Ljava/util/Map;)V
            areturn
        end local 3 // java.rmi.server.RMIServerSocketFactory ssf
        end local 2 // java.rmi.server.RMIClientSocketFactory csf
        end local 1 // int port
        end local 0 // java.util.Map env
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0   env  Ljava/util/Map<Ljava/lang/String;*>;
            0    5     1  port  I
            2    5     2   csf  Ljava/rmi/server/RMIClientSocketFactory;
            4    5     3   ssf  Ljava/rmi/server/RMIServerSocketFactory;
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/util/Map<Ljava/lang/String;*>;I)Ljavax/management/remote/rmi/RMIServerImpl;
    MethodParameters:
      Name  Flags
      env   
      port  

  private static java.lang.String byteArrayToBase64(byte[]);
    descriptor: ([B)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=11, args_size=1
        start local 0 // byte[] a
         0: .line 777
            aload 0 /* a */
            arraylength
            istore 1 /* aLen */
        start local 1 // int aLen
         1: .line 778
            iload 1 /* aLen */
            iconst_3
            idiv
            istore 2 /* numFullGroups */
        start local 2 // int numFullGroups
         2: .line 779
            iload 1 /* aLen */
            iconst_3
            iload 2 /* numFullGroups */
            imul
            isub
            istore 3 /* numBytesInPartialGroup */
        start local 3 // int numBytesInPartialGroup
         3: .line 780
            iconst_4
            iload 1 /* aLen */
            iconst_2
            iadd
            iconst_3
            idiv
            imul
            istore 4 /* resultLen */
        start local 4 // int resultLen
         4: .line 781
            new java.lang.StringBuilder
            dup
            iload 4 /* resultLen */
            invokespecial java.lang.StringBuilder.<init>:(I)V
            astore 5 /* result */
        start local 5 // java.lang.StringBuilder result
         5: .line 784
            iconst_0
            istore 6 /* inCursor */
        start local 6 // int inCursor
         6: .line 785
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         7: goto 16
         8: .line 786
      StackMap locals: byte[] int int int int java.lang.StringBuilder int int
      StackMap stack:
            aload 0 /* a */
            iload 6 /* inCursor */
            iinc 6 /* inCursor */ 1
            baload
            sipush 255
            iand
            istore 8 /* byte0 */
        start local 8 // int byte0
         9: .line 787
            aload 0 /* a */
            iload 6 /* inCursor */
            iinc 6 /* inCursor */ 1
            baload
            sipush 255
            iand
            istore 9 /* byte1 */
        start local 9 // int byte1
        10: .line 788
            aload 0 /* a */
            iload 6 /* inCursor */
            iinc 6 /* inCursor */ 1
            baload
            sipush 255
            iand
            istore 10 /* byte2 */
        start local 10 // int byte2
        11: .line 789
            aload 5 /* result */
            getstatic javax.management.remote.rmi.RMIConnectorServer.intToAlpha:[C
            iload 8 /* byte0 */
            iconst_2
            ishr
            caload
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        12: .line 790
            aload 5 /* result */
            getstatic javax.management.remote.rmi.RMIConnectorServer.intToAlpha:[C
            iload 8 /* byte0 */
            iconst_4
            ishl
            bipush 63
            iand
            iload 9 /* byte1 */
            iconst_4
            ishr
            ior
            caload
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        13: .line 791
            aload 5 /* result */
            getstatic javax.management.remote.rmi.RMIConnectorServer.intToAlpha:[C
            iload 9 /* byte1 */
            iconst_2
            ishl
            bipush 63
            iand
            iload 10 /* byte2 */
            bipush 6
            ishr
            ior
            caload
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        14: .line 792
            aload 5 /* result */
            getstatic javax.management.remote.rmi.RMIConnectorServer.intToAlpha:[C
            iload 10 /* byte2 */
            bipush 63
            iand
            caload
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        end local 10 // int byte2
        end local 9 // int byte1
        end local 8 // int byte0
        15: .line 785
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        16: iload 7 /* i */
            iload 2 /* numFullGroups */
            if_icmplt 8
        end local 7 // int i
        17: .line 796
            iload 3 /* numBytesInPartialGroup */
            ifeq 28
        18: .line 797
            aload 0 /* a */
            iload 6 /* inCursor */
            iinc 6 /* inCursor */ 1
            baload
            sipush 255
            iand
            istore 7 /* byte0 */
        start local 7 // int byte0
        19: .line 798
            aload 5 /* result */
            getstatic javax.management.remote.rmi.RMIConnectorServer.intToAlpha:[C
            iload 7 /* byte0 */
            iconst_2
            ishr
            caload
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        20: .line 799
            iload 3 /* numBytesInPartialGroup */
            iconst_1
            if_icmpne 24
        21: .line 800
            aload 5 /* result */
            getstatic javax.management.remote.rmi.RMIConnectorServer.intToAlpha:[C
            iload 7 /* byte0 */
            iconst_4
            ishl
            bipush 63
            iand
            caload
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        22: .line 801
            aload 5 /* result */
            ldc "=="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        23: .line 802
            goto 28
        24: .line 804
      StackMap locals:
      StackMap stack:
            aload 0 /* a */
            iload 6 /* inCursor */
            iinc 6 /* inCursor */ 1
            baload
            sipush 255
            iand
            istore 8 /* byte1 */
        start local 8 // int byte1
        25: .line 805
            aload 5 /* result */
            getstatic javax.management.remote.rmi.RMIConnectorServer.intToAlpha:[C
            iload 7 /* byte0 */
            iconst_4
            ishl
            bipush 63
            iand
            iload 8 /* byte1 */
            iconst_4
            ishr
            ior
            caload
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        26: .line 806
            aload 5 /* result */
            getstatic javax.management.remote.rmi.RMIConnectorServer.intToAlpha:[C
            iload 8 /* byte1 */
            iconst_2
            ishl
            bipush 63
            iand
            caload
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        27: .line 807
            aload 5 /* result */
            bipush 61
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        end local 8 // int byte1
        end local 7 // int byte0
        28: .line 812
      StackMap locals:
      StackMap stack:
            aload 5 /* result */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 6 // int inCursor
        end local 5 // java.lang.StringBuilder result
        end local 4 // int resultLen
        end local 3 // int numBytesInPartialGroup
        end local 2 // int numFullGroups
        end local 1 // int aLen
        end local 0 // byte[] a
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   29     0                       a  [B
            1   29     1                    aLen  I
            2   29     2           numFullGroups  I
            3   29     3  numBytesInPartialGroup  I
            4   29     4               resultLen  I
            5   29     5                  result  Ljava/lang/StringBuilder;
            6   29     6                inCursor  I
            7   17     7                       i  I
            9   15     8                   byte0  I
           10   15     9                   byte1  I
           11   15    10                   byte2  I
           19   28     7                   byte0  I
           25   28     8                   byte1  I
    MethodParameters:
      Name  Flags
      a     

  private static java.io.IOException newIOException(java.lang.String, java.lang.Throwable);
    descriptor: (Ljava/lang/String;Ljava/lang/Throwable;)Ljava/io/IOException;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.lang.String message
        start local 1 // java.lang.Throwable cause
         0: .line 834
            new java.io.IOException
            dup
            aload 0 /* message */
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            astore 2 /* x */
        start local 2 // java.io.IOException x
         1: .line 835
            aload 2 /* x */
            aload 1 /* cause */
            invokestatic com.sun.jmx.remote.util.EnvHelp.initCause:(Ljava/lang/Throwable;Ljava/lang/Throwable;)Ljava/lang/Throwable;
            checkcast java.io.IOException
            areturn
        end local 2 // java.io.IOException x
        end local 1 // java.lang.Throwable cause
        end local 0 // java.lang.String message
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0  message  Ljava/lang/String;
            0    2     1    cause  Ljava/lang/Throwable;
            1    2     2        x  Ljava/io/IOException;
    MethodParameters:
         Name  Flags
      message  
      cause    
}
SourceFile: "RMIConnectorServer.java"