public class javax.management.remote.rmi.RMIJRMPServerImpl extends javax.management.remote.rmi.RMIServerImpl
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: javax.management.remote.rmi.RMIJRMPServerImpl
  super_class: javax.management.remote.rmi.RMIServerImpl
{
  private final javax.management.remote.rmi.RMIJRMPServerImpl$ExportedWrapper exportedWrapper;
    descriptor: Ljavax/management/remote/rmi/RMIJRMPServerImpl$ExportedWrapper;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int port;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.rmi.server.RMIClientSocketFactory csf;
    descriptor: Ljava/rmi/server/RMIClientSocketFactory;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.rmi.server.RMIServerSocketFactory ssf;
    descriptor: Ljava/rmi/server/RMIServerSocketFactory;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  public void <init>(int, java.rmi.server.RMIClientSocketFactory, java.rmi.server.RMIServerSocketFactory, java.util.Map<java.lang.String, ?>);
    descriptor: (ILjava/rmi/server/RMIClientSocketFactory;Ljava/rmi/server/RMIServerSocketFactory;Ljava/util/Map;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=11, args_size=5
        start local 0 // javax.management.remote.rmi.RMIJRMPServerImpl this
        start local 1 // int port
        start local 2 // java.rmi.server.RMIClientSocketFactory csf
        start local 3 // java.rmi.server.RMIServerSocketFactory ssf
        start local 4 // java.util.Map env
         0: .line 91
            aload 0 /* this */
            aload 4 /* env */
            invokespecial javax.management.remote.rmi.RMIServerImpl.<init>:(Ljava/util/Map;)V
         1: .line 93
            iload 1 /* port */
            ifge 3
         2: .line 94
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Negative port: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* port */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 96
      StackMap locals: javax.management.remote.rmi.RMIJRMPServerImpl int java.rmi.server.RMIClientSocketFactory java.rmi.server.RMIServerSocketFactory java.util.Map
      StackMap stack:
            aload 0 /* this */
            iload 1 /* port */
            putfield javax.management.remote.rmi.RMIJRMPServerImpl.port:I
         4: .line 97
            aload 0 /* this */
            aload 2 /* csf */
            putfield javax.management.remote.rmi.RMIJRMPServerImpl.csf:Ljava/rmi/server/RMIClientSocketFactory;
         5: .line 98
            aload 0 /* this */
            aload 3 /* ssf */
            putfield javax.management.remote.rmi.RMIJRMPServerImpl.ssf:Ljava/rmi/server/RMIServerSocketFactory;
         6: .line 99
            aload 0 /* this */
            aload 4 /* env */
            ifnonnull 7
            invokestatic java.util.Collections.emptyMap:()Ljava/util/Map;
            goto 8
      StackMap locals:
      StackMap stack: javax.management.remote.rmi.RMIJRMPServerImpl
         7: aload 4 /* env */
      StackMap locals: javax.management.remote.rmi.RMIJRMPServerImpl int java.rmi.server.RMIClientSocketFactory java.rmi.server.RMIServerSocketFactory java.util.Map
      StackMap stack: javax.management.remote.rmi.RMIJRMPServerImpl java.util.Map
         8: putfield javax.management.remote.rmi.RMIJRMPServerImpl.env:Ljava/util/Map;
         9: .line 102
            aload 0 /* this */
            getfield javax.management.remote.rmi.RMIJRMPServerImpl.env:Ljava/util/Map;
            ldc "jmx.remote.rmi.server.credential.types"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String[]
        10: .line 101
            astore 5 /* credentialsTypes */
        start local 5 // java.lang.String[] credentialsTypes
        11: .line 103
            aconst_null
            astore 6 /* types */
        start local 6 // java.util.List types
        12: .line 104
            aload 5 /* credentialsTypes */
            ifnull 22
        13: .line 105
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 6 /* types */
        14: .line 106
            aload 5 /* credentialsTypes */
            dup
            astore 10
            arraylength
            istore 9
            iconst_0
            istore 8
            goto 21
      StackMap locals: javax.management.remote.rmi.RMIJRMPServerImpl int java.rmi.server.RMIClientSocketFactory java.rmi.server.RMIServerSocketFactory java.util.Map java.lang.String[] java.util.List top int int java.lang.String[]
      StackMap stack:
        15: aload 10
            iload 8
            aaload
            astore 7 /* type */
        start local 7 // java.lang.String type
        16: .line 107
            aload 7 /* type */
            ifnonnull 18
        17: .line 108
            new java.lang.IllegalArgumentException
            dup
            ldc "A credential type is null."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        18: .line 110
      StackMap locals: javax.management.remote.rmi.RMIJRMPServerImpl int java.rmi.server.RMIClientSocketFactory java.rmi.server.RMIServerSocketFactory java.util.Map java.lang.String[] java.util.List java.lang.String int int java.lang.String[]
      StackMap stack:
            aload 7 /* type */
            invokestatic sun.reflect.misc.ReflectUtil.checkPackageAccess:(Ljava/lang/String;)V
        19: .line 111
            aload 6 /* types */
            aload 7 /* type */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 7 // java.lang.String type
        20: .line 106
            iinc 8 1
      StackMap locals: javax.management.remote.rmi.RMIJRMPServerImpl int java.rmi.server.RMIClientSocketFactory java.rmi.server.RMIServerSocketFactory java.util.Map java.lang.String[] java.util.List top int int java.lang.String[]
      StackMap stack:
        21: iload 8
            iload 9
            if_icmplt 15
        22: .line 114
      StackMap locals: javax.management.remote.rmi.RMIJRMPServerImpl int java.rmi.server.RMIClientSocketFactory java.rmi.server.RMIServerSocketFactory java.util.Map java.lang.String[] java.util.List
      StackMap stack:
            aload 0 /* this */
            aload 6 /* types */
            ifnull 24
        23: .line 115
            new javax.management.remote.rmi.RMIJRMPServerImpl$ExportedWrapper
            dup
            aload 0 /* this */
            aload 6 /* types */
            invokespecial javax.management.remote.rmi.RMIJRMPServerImpl$ExportedWrapper.<init>:(Ljavax/management/remote/rmi/RMIServer;Ljava/util/List;)V
            goto 25
        24: .line 116
      StackMap locals:
      StackMap stack: javax.management.remote.rmi.RMIJRMPServerImpl
            aconst_null
        25: .line 114
      StackMap locals: javax.management.remote.rmi.RMIJRMPServerImpl int java.rmi.server.RMIClientSocketFactory java.rmi.server.RMIServerSocketFactory java.util.Map java.lang.String[] java.util.List
      StackMap stack: javax.management.remote.rmi.RMIJRMPServerImpl javax.management.remote.rmi.RMIJRMPServerImpl$ExportedWrapper
            putfield javax.management.remote.rmi.RMIJRMPServerImpl.exportedWrapper:Ljavax/management/remote/rmi/RMIJRMPServerImpl$ExportedWrapper;
        26: .line 117
            return
        end local 6 // java.util.List types
        end local 5 // java.lang.String[] credentialsTypes
        end local 4 // java.util.Map env
        end local 3 // java.rmi.server.RMIServerSocketFactory ssf
        end local 2 // java.rmi.server.RMIClientSocketFactory csf
        end local 1 // int port
        end local 0 // javax.management.remote.rmi.RMIJRMPServerImpl this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   27     0              this  Ljavax/management/remote/rmi/RMIJRMPServerImpl;
            0   27     1              port  I
            0   27     2               csf  Ljava/rmi/server/RMIClientSocketFactory;
            0   27     3               ssf  Ljava/rmi/server/RMIServerSocketFactory;
            0   27     4               env  Ljava/util/Map<Ljava/lang/String;*>;
           11   27     5  credentialsTypes  [Ljava/lang/String;
           12   27     6             types  Ljava/util/List<Ljava/lang/String;>;
           16   20     7              type  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    Signature: (ILjava/rmi/server/RMIClientSocketFactory;Ljava/rmi/server/RMIServerSocketFactory;Ljava/util/Map<Ljava/lang/String;*>;)V
    MethodParameters:
      Name  Flags
      port  
      csf   
      ssf   
      env   

  protected void export();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // javax.management.remote.rmi.RMIJRMPServerImpl this
         0: .line 120
            aload 0 /* this */
            getfield javax.management.remote.rmi.RMIJRMPServerImpl.exportedWrapper:Ljavax/management/remote/rmi/RMIJRMPServerImpl$ExportedWrapper;
            ifnull 3
         1: .line 121
            aload 0 /* this */
            aload 0 /* this */
            getfield javax.management.remote.rmi.RMIJRMPServerImpl.exportedWrapper:Ljavax/management/remote/rmi/RMIJRMPServerImpl$ExportedWrapper;
            invokevirtual javax.management.remote.rmi.RMIJRMPServerImpl.export:(Ljava/rmi/Remote;)V
         2: .line 122
            goto 4
         3: .line 123
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual javax.management.remote.rmi.RMIJRMPServerImpl.export:(Ljava/rmi/Remote;)V
         4: .line 125
      StackMap locals:
      StackMap stack:
            return
        end local 0 // javax.management.remote.rmi.RMIJRMPServerImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljavax/management/remote/rmi/RMIJRMPServerImpl;
    Exceptions:
      throws java.io.IOException

  private void export(java.rmi.Remote);
    descriptor: (Ljava/rmi/Remote;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // javax.management.remote.rmi.RMIJRMPServerImpl this
        start local 1 // java.rmi.Remote obj
         0: .line 129
            aload 0 /* this */
            getfield javax.management.remote.rmi.RMIJRMPServerImpl.env:Ljava/util/Map;
            ldc "com.sun.jmx.remote.rmi.exporter"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.sun.jmx.remote.internal.RMIExporter
         1: .line 128
            astore 2 /* exporter */
        start local 2 // com.sun.jmx.remote.internal.RMIExporter exporter
         2: .line 130
            aload 2 /* exporter */
            ifnonnull 4
         3: .line 131
            aload 1 /* obj */
            aload 0 /* this */
            getfield javax.management.remote.rmi.RMIJRMPServerImpl.port:I
            aload 0 /* this */
            getfield javax.management.remote.rmi.RMIJRMPServerImpl.csf:Ljava/rmi/server/RMIClientSocketFactory;
            aload 0 /* this */
            getfield javax.management.remote.rmi.RMIJRMPServerImpl.ssf:Ljava/rmi/server/RMIServerSocketFactory;
            invokestatic java.rmi.server.UnicastRemoteObject.exportObject:(Ljava/rmi/Remote;ILjava/rmi/server/RMIClientSocketFactory;Ljava/rmi/server/RMIServerSocketFactory;)Ljava/rmi/Remote;
            pop
            goto 5
         4: .line 133
      StackMap locals: com.sun.jmx.remote.internal.RMIExporter
      StackMap stack:
            aload 2 /* exporter */
            aload 1 /* obj */
            aload 0 /* this */
            getfield javax.management.remote.rmi.RMIJRMPServerImpl.port:I
            aload 0 /* this */
            getfield javax.management.remote.rmi.RMIJRMPServerImpl.csf:Ljava/rmi/server/RMIClientSocketFactory;
            aload 0 /* this */
            getfield javax.management.remote.rmi.RMIJRMPServerImpl.ssf:Ljava/rmi/server/RMIServerSocketFactory;
            invokeinterface com.sun.jmx.remote.internal.RMIExporter.exportObject:(Ljava/rmi/Remote;ILjava/rmi/server/RMIClientSocketFactory;Ljava/rmi/server/RMIServerSocketFactory;)Ljava/rmi/Remote;
            pop
         5: .line 134
      StackMap locals:
      StackMap stack:
            return
        end local 2 // com.sun.jmx.remote.internal.RMIExporter exporter
        end local 1 // java.rmi.Remote obj
        end local 0 // javax.management.remote.rmi.RMIJRMPServerImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Ljavax/management/remote/rmi/RMIJRMPServerImpl;
            0    6     1       obj  Ljava/rmi/Remote;
            2    6     2  exporter  Lcom/sun/jmx/remote/internal/RMIExporter;
    Exceptions:
      throws java.rmi.RemoteException
    MethodParameters:
      Name  Flags
      obj   

  private void unexport(java.rmi.Remote, boolean);
    descriptor: (Ljava/rmi/Remote;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // javax.management.remote.rmi.RMIJRMPServerImpl this
        start local 1 // java.rmi.Remote obj
        start local 2 // boolean force
         0: .line 139
            aload 0 /* this */
            getfield javax.management.remote.rmi.RMIJRMPServerImpl.env:Ljava/util/Map;
            ldc "com.sun.jmx.remote.rmi.exporter"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.sun.jmx.remote.internal.RMIExporter
         1: .line 138
            astore 3 /* exporter */
        start local 3 // com.sun.jmx.remote.internal.RMIExporter exporter
         2: .line 140
            aload 3 /* exporter */
            ifnonnull 4
         3: .line 141
            aload 1 /* obj */
            iload 2 /* force */
            invokestatic java.rmi.server.UnicastRemoteObject.unexportObject:(Ljava/rmi/Remote;Z)Z
            pop
            goto 5
         4: .line 143
      StackMap locals: com.sun.jmx.remote.internal.RMIExporter
      StackMap stack:
            aload 3 /* exporter */
            aload 1 /* obj */
            iload 2 /* force */
            invokeinterface com.sun.jmx.remote.internal.RMIExporter.unexportObject:(Ljava/rmi/Remote;Z)Z
            pop
         5: .line 144
      StackMap locals:
      StackMap stack:
            return
        end local 3 // com.sun.jmx.remote.internal.RMIExporter exporter
        end local 2 // boolean force
        end local 1 // java.rmi.Remote obj
        end local 0 // javax.management.remote.rmi.RMIJRMPServerImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Ljavax/management/remote/rmi/RMIJRMPServerImpl;
            0    6     1       obj  Ljava/rmi/Remote;
            0    6     2     force  Z
            2    6     3  exporter  Lcom/sun/jmx/remote/internal/RMIExporter;
    Exceptions:
      throws java.rmi.NoSuchObjectException
    MethodParameters:
       Name  Flags
      obj    
      force  

  protected java.lang.String getProtocol();
    descriptor: ()Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.management.remote.rmi.RMIJRMPServerImpl this
         0: .line 147
            ldc "rmi"
            areturn
        end local 0 // javax.management.remote.rmi.RMIJRMPServerImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/management/remote/rmi/RMIJRMPServerImpl;

  public java.rmi.Remote toStub();
    descriptor: ()Ljava/rmi/Remote;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.management.remote.rmi.RMIJRMPServerImpl this
         0: .line 159
            aload 0 /* this */
            getfield javax.management.remote.rmi.RMIJRMPServerImpl.exportedWrapper:Ljavax/management/remote/rmi/RMIJRMPServerImpl$ExportedWrapper;
            ifnull 2
         1: .line 160
            aload 0 /* this */
            getfield javax.management.remote.rmi.RMIJRMPServerImpl.exportedWrapper:Ljavax/management/remote/rmi/RMIJRMPServerImpl$ExportedWrapper;
            invokestatic java.rmi.server.RemoteObject.toStub:(Ljava/rmi/Remote;)Ljava/rmi/Remote;
            areturn
         2: .line 162
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokestatic java.rmi.server.RemoteObject.toStub:(Ljava/rmi/Remote;)Ljava/rmi/Remote;
            areturn
        end local 0 // javax.management.remote.rmi.RMIJRMPServerImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljavax/management/remote/rmi/RMIJRMPServerImpl;
    Exceptions:
      throws java.io.IOException

  protected javax.management.remote.rmi.RMIConnection makeClient(java.lang.String, javax.security.auth.Subject);
    descriptor: (Ljava/lang/String;Ljavax/security/auth/Subject;)Ljavax/management/remote/rmi/RMIConnection;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=4, args_size=3
        start local 0 // javax.management.remote.rmi.RMIJRMPServerImpl this
        start local 1 // java.lang.String connectionId
        start local 2 // javax.security.auth.Subject subject
         0: .line 187
            aload 1 /* connectionId */
            ifnonnull 2
         1: .line 188
            new java.lang.NullPointerException
            dup
            ldc "Null connectionId"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 191
      StackMap locals:
      StackMap stack:
            new javax.management.remote.rmi.RMIConnectionImpl
            dup
            aload 0 /* this */
            aload 1 /* connectionId */
            aload 0 /* this */
            invokevirtual javax.management.remote.rmi.RMIJRMPServerImpl.getDefaultClassLoader:()Ljava/lang/ClassLoader;
         3: .line 192
            aload 2 /* subject */
            aload 0 /* this */
            getfield javax.management.remote.rmi.RMIJRMPServerImpl.env:Ljava/util/Map;
         4: .line 191
            invokespecial javax.management.remote.rmi.RMIConnectionImpl.<init>:(Ljavax/management/remote/rmi/RMIServerImpl;Ljava/lang/String;Ljava/lang/ClassLoader;Ljavax/security/auth/Subject;Ljava/util/Map;)V
         5: .line 190
            astore 3 /* client */
        start local 3 // javax.management.remote.rmi.RMIConnection client
         6: .line 193
            aload 0 /* this */
            aload 3 /* client */
            invokevirtual javax.management.remote.rmi.RMIJRMPServerImpl.export:(Ljava/rmi/Remote;)V
         7: .line 194
            aload 3 /* client */
            areturn
        end local 3 // javax.management.remote.rmi.RMIConnection client
        end local 2 // javax.security.auth.Subject subject
        end local 1 // java.lang.String connectionId
        end local 0 // javax.management.remote.rmi.RMIJRMPServerImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    8     0          this  Ljavax/management/remote/rmi/RMIJRMPServerImpl;
            0    8     1  connectionId  Ljava/lang/String;
            0    8     2       subject  Ljavax/security/auth/Subject;
            6    8     3        client  Ljavax/management/remote/rmi/RMIConnection;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
              Name  Flags
      connectionId  
      subject       

  protected void closeClient(javax.management.remote.rmi.RMIConnection);
    descriptor: (Ljavax/management/remote/rmi/RMIConnection;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // javax.management.remote.rmi.RMIJRMPServerImpl this
        start local 1 // javax.management.remote.rmi.RMIConnection client
         0: .line 198
            aload 0 /* this */
            aload 1 /* client */
            iconst_1
            invokevirtual javax.management.remote.rmi.RMIJRMPServerImpl.unexport:(Ljava/rmi/Remote;Z)V
         1: .line 199
            return
        end local 1 // javax.management.remote.rmi.RMIConnection client
        end local 0 // javax.management.remote.rmi.RMIJRMPServerImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Ljavax/management/remote/rmi/RMIJRMPServerImpl;
            0    2     1  client  Ljavax/management/remote/rmi/RMIConnection;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      client  

  protected void closeServer();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // javax.management.remote.rmi.RMIJRMPServerImpl this
         0: .line 210
            aload 0 /* this */
            getfield javax.management.remote.rmi.RMIJRMPServerImpl.exportedWrapper:Ljavax/management/remote/rmi/RMIJRMPServerImpl$ExportedWrapper;
            ifnull 3
         1: .line 211
            aload 0 /* this */
            aload 0 /* this */
            getfield javax.management.remote.rmi.RMIJRMPServerImpl.exportedWrapper:Ljavax/management/remote/rmi/RMIJRMPServerImpl$ExportedWrapper;
            iconst_1
            invokevirtual javax.management.remote.rmi.RMIJRMPServerImpl.unexport:(Ljava/rmi/Remote;Z)V
         2: .line 212
            goto 4
         3: .line 213
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            iconst_1
            invokevirtual javax.management.remote.rmi.RMIJRMPServerImpl.unexport:(Ljava/rmi/Remote;Z)V
         4: .line 215
      StackMap locals:
      StackMap stack:
            return
        end local 0 // javax.management.remote.rmi.RMIJRMPServerImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljavax/management/remote/rmi/RMIJRMPServerImpl;
    Exceptions:
      throws java.io.IOException
}
SourceFile: "RMIJRMPServerImpl.java"
NestMembers:
  javax.management.remote.rmi.RMIJRMPServerImpl$ExportedWrapper
InnerClasses:
  private ExportedWrapper = javax.management.remote.rmi.RMIJRMPServerImpl$ExportedWrapper of javax.management.remote.rmi.RMIJRMPServerImpl