public class sun.rmi.server.UnicastRef implements java.rmi.server.RemoteRef
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.rmi.server.UnicastRef
  super_class: java.lang.Object
{
  public static final sun.rmi.runtime.Log clientRefLog;
    descriptor: Lsun/rmi/runtime/Log;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final sun.rmi.runtime.Log clientCallLog;
    descriptor: Lsun/rmi/runtime/Log;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  private static final long serialVersionUID;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 8258372400816541186

  protected sun.rmi.transport.LiveRef ref;
    descriptor: Lsun/rmi/transport/LiveRef;
    flags: (0x0004) ACC_PROTECTED

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 62
            ldc "sun.rmi.client.ref"
            ldc "transport"
            getstatic sun.rmi.server.Util.logLevel:I
            invokestatic sun.rmi.runtime.Log.getLog:(Ljava/lang/String;Ljava/lang/String;I)Lsun/rmi/runtime/Log;
         1: .line 61
            putstatic sun.rmi.server.UnicastRef.clientRefLog:Lsun/rmi/runtime/Log;
         2: .line 68
            ldc "sun.rmi.client.call"
            ldc "RMI"
         3: .line 69
            invokedynamic run()Ljava/security/PrivilegedAction;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  sun/rmi/server/UnicastRef.lambda$0()Ljava/lang/Boolean; (6)
                  ()Ljava/lang/Boolean;
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
         4: .line 68
            invokestatic sun.rmi.runtime.Log.getLog:(Ljava/lang/String;Ljava/lang/String;Z)Lsun/rmi/runtime/Log;
         5: .line 67
            putstatic sun.rmi.server.UnicastRef.clientCallLog:Lsun/rmi/runtime/Log;
         6: .line 71
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.rmi.server.UnicastRef this
         0: .line 78
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 79
            return
        end local 0 // sun.rmi.server.UnicastRef this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/rmi/server/UnicastRef;

  public void <init>(sun.rmi.transport.LiveRef);
    descriptor: (Lsun/rmi/transport/LiveRef;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.rmi.server.UnicastRef this
        start local 1 // sun.rmi.transport.LiveRef liveRef
         0: .line 84
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 85
            aload 0 /* this */
            aload 1 /* liveRef */
            putfield sun.rmi.server.UnicastRef.ref:Lsun/rmi/transport/LiveRef;
         2: .line 86
            return
        end local 1 // sun.rmi.transport.LiveRef liveRef
        end local 0 // sun.rmi.server.UnicastRef this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lsun/rmi/server/UnicastRef;
            0    3     1  liveRef  Lsun/rmi/transport/LiveRef;
    MethodParameters:
         Name  Flags
      liveRef  

  public sun.rmi.transport.LiveRef getLiveRef();
    descriptor: ()Lsun/rmi/transport/LiveRef;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.rmi.server.UnicastRef this
         0: .line 97
            aload 0 /* this */
            getfield sun.rmi.server.UnicastRef.ref:Lsun/rmi/transport/LiveRef;
            areturn
        end local 0 // sun.rmi.server.UnicastRef this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/rmi/server/UnicastRef;

  public java.lang.Object invoke(java.rmi.Remote, java.lang.reflect.Method, java.lang.Object[], long);
    descriptor: (Ljava/rmi/Remote;Ljava/lang/reflect/Method;[Ljava/lang/Object;J)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=16, args_size=5
        start local 0 // sun.rmi.server.UnicastRef this
        start local 1 // java.rmi.Remote obj
        start local 2 // java.lang.reflect.Method method
        start local 3 // java.lang.Object[] params
        start local 4 // long opnum
         0: .line 124
            getstatic sun.rmi.server.UnicastRef.clientRefLog:Lsun/rmi/runtime/Log;
            getstatic sun.rmi.runtime.Log.VERBOSE:Ljava/util/logging/Level;
            invokevirtual sun.rmi.runtime.Log.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 2
         1: .line 125
            getstatic sun.rmi.server.UnicastRef.clientRefLog:Lsun/rmi/runtime/Log;
            getstatic sun.rmi.runtime.Log.VERBOSE:Ljava/util/logging/Level;
            new java.lang.StringBuilder
            dup
            ldc "method: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* method */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
         2: .line 128
      StackMap locals:
      StackMap stack:
            getstatic sun.rmi.server.UnicastRef.clientCallLog:Lsun/rmi/runtime/Log;
            getstatic sun.rmi.runtime.Log.VERBOSE:Ljava/util/logging/Level;
            invokevirtual sun.rmi.runtime.Log.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 4
         3: .line 129
            aload 0 /* this */
            aload 1 /* obj */
            aload 2 /* method */
            invokevirtual sun.rmi.server.UnicastRef.logClientCall:(Ljava/lang/Object;Ljava/lang/Object;)V
         4: .line 132
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.rmi.server.UnicastRef.ref:Lsun/rmi/transport/LiveRef;
            invokevirtual sun.rmi.transport.LiveRef.getChannel:()Lsun/rmi/transport/Channel;
            invokeinterface sun.rmi.transport.Channel.newConnection:()Lsun/rmi/transport/Connection;
            astore 6 /* conn */
        start local 6 // sun.rmi.transport.Connection conn
         5: .line 133
            aconst_null
            astore 7 /* call */
        start local 7 // java.rmi.server.RemoteCall call
         6: .line 134
            iconst_1
            istore 8 /* reuse */
        start local 8 // boolean reuse
         7: .line 139
            iconst_0
            istore 9 /* alreadyFreed */
        start local 9 // boolean alreadyFreed
         8: .line 142
            getstatic sun.rmi.server.UnicastRef.clientRefLog:Lsun/rmi/runtime/Log;
            getstatic sun.rmi.runtime.Log.VERBOSE:Ljava/util/logging/Level;
            invokevirtual sun.rmi.runtime.Log.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 10
         9: .line 143
            getstatic sun.rmi.server.UnicastRef.clientRefLog:Lsun/rmi/runtime/Log;
            getstatic sun.rmi.runtime.Log.VERBOSE:Ljava/util/logging/Level;
            new java.lang.StringBuilder
            dup
            ldc "opnum = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 4 /* opnum */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
        10: .line 147
      StackMap locals: sun.rmi.server.UnicastRef java.rmi.Remote java.lang.reflect.Method java.lang.Object[] long sun.rmi.transport.Connection java.rmi.server.RemoteCall int int
      StackMap stack:
            new sun.rmi.transport.StreamRemoteCall
            dup
            aload 6 /* conn */
            aload 0 /* this */
            getfield sun.rmi.server.UnicastRef.ref:Lsun/rmi/transport/LiveRef;
            invokevirtual sun.rmi.transport.LiveRef.getObjID:()Ljava/rmi/server/ObjID;
            iconst_m1
            lload 4 /* opnum */
            invokespecial sun.rmi.transport.StreamRemoteCall.<init>:(Lsun/rmi/transport/Connection;Ljava/rmi/server/ObjID;IJ)V
            astore 7 /* call */
        11: .line 151
            aload 7 /* call */
            invokeinterface java.rmi.server.RemoteCall.getOutputStream:()Ljava/io/ObjectOutput;
            astore 10 /* out */
        start local 10 // java.io.ObjectOutput out
        12: .line 152
            aload 0 /* this */
            aload 10 /* out */
            invokevirtual sun.rmi.server.UnicastRef.marshalCustomCallData:(Ljava/io/ObjectOutput;)V
        13: .line 153
            aload 2 /* method */
            invokevirtual java.lang.reflect.Method.getParameterTypes:()[Ljava/lang/Class;
            astore 11 /* types */
        start local 11 // java.lang.Class[] types
        14: .line 154
            iconst_0
            istore 12 /* i */
        start local 12 // int i
        15: goto 18
        16: .line 155
      StackMap locals: java.io.ObjectOutput java.lang.Class[] int
      StackMap stack:
            aload 11 /* types */
            iload 12 /* i */
            aaload
            aload 3 /* params */
            iload 12 /* i */
            aaload
            aload 10 /* out */
            invokestatic sun.rmi.server.UnicastRef.marshalValue:(Ljava/lang/Class;Ljava/lang/Object;Ljava/io/ObjectOutput;)V
        17: .line 154
            iinc 12 /* i */ 1
      StackMap locals:
      StackMap stack:
        18: iload 12 /* i */
            aload 11 /* types */
            arraylength
            if_icmplt 16
        end local 12 // int i
        end local 11 // java.lang.Class[] types
        end local 10 // java.io.ObjectOutput out
        19: .line 157
            goto 25
      StackMap locals: sun.rmi.server.UnicastRef java.rmi.Remote java.lang.reflect.Method java.lang.Object[] long sun.rmi.transport.Connection java.rmi.server.RemoteCall int int
      StackMap stack: java.io.IOException
        20: astore 10 /* e */
        start local 10 // java.io.IOException e
        21: .line 158
            getstatic sun.rmi.server.UnicastRef.clientRefLog:Lsun/rmi/runtime/Log;
            getstatic sun.rmi.runtime.Log.BRIEF:Ljava/util/logging/Level;
        22: .line 159
            ldc "IOException marshalling arguments: "
            aload 10 /* e */
        23: .line 158
            invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
        24: .line 160
            new java.rmi.MarshalException
            dup
            ldc "error marshalling arguments"
            aload 10 /* e */
            invokespecial java.rmi.MarshalException.<init>:(Ljava/lang/String;Ljava/lang/Exception;)V
            athrow
        end local 10 // java.io.IOException e
        25: .line 164
      StackMap locals:
      StackMap stack:
            aload 7 /* call */
            invokeinterface java.rmi.server.RemoteCall.executeCall:()V
        26: .line 167
            aload 2 /* method */
            invokevirtual java.lang.reflect.Method.getReturnType:()Ljava/lang/Class;
            astore 10 /* rtype */
        start local 10 // java.lang.Class rtype
        27: .line 168
            aload 10 /* rtype */
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            if_acmpne 39
        28: .line 200
            aload 7 /* call */
            invokeinterface java.rmi.server.RemoteCall.done:()V
        29: .line 201
            goto 32
      StackMap locals: sun.rmi.server.UnicastRef java.rmi.Remote java.lang.reflect.Method java.lang.Object[] long sun.rmi.transport.Connection java.rmi.server.RemoteCall int int java.lang.Class
      StackMap stack: java.io.IOException
        30: pop
        31: .line 208
            iconst_0
            istore 8 /* reuse */
        32: .line 251
      StackMap locals:
      StackMap stack:
            iload 9 /* alreadyFreed */
            ifne 38
        33: .line 252
            getstatic sun.rmi.server.UnicastRef.clientRefLog:Lsun/rmi/runtime/Log;
            getstatic sun.rmi.runtime.Log.BRIEF:Ljava/util/logging/Level;
            invokevirtual sun.rmi.runtime.Log.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 37
        34: .line 253
            getstatic sun.rmi.server.UnicastRef.clientRefLog:Lsun/rmi/runtime/Log;
            getstatic sun.rmi.runtime.Log.BRIEF:Ljava/util/logging/Level;
            new java.lang.StringBuilder
            dup
            ldc "free connection (reuse = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        35: .line 254
            iload 8 /* reuse */
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        36: .line 253
            invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
        37: .line 256
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.rmi.server.UnicastRef.ref:Lsun/rmi/transport/LiveRef;
            invokevirtual sun.rmi.transport.LiveRef.getChannel:()Lsun/rmi/transport/Channel;
            aload 6 /* conn */
            iload 8 /* reuse */
            invokeinterface sun.rmi.transport.Channel.free:(Lsun/rmi/transport/Connection;Z)V
        38: .line 169
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        39: .line 170
      StackMap locals:
      StackMap stack:
            aload 7 /* call */
            invokeinterface java.rmi.server.RemoteCall.getInputStream:()Ljava/io/ObjectInput;
            astore 11 /* in */
        start local 11 // java.io.ObjectInput in
        40: .line 177
            aload 10 /* rtype */
            aload 11 /* in */
            invokestatic sun.rmi.server.UnicastRef.unmarshalValue:(Ljava/lang/Class;Ljava/io/ObjectInput;)Ljava/lang/Object;
            astore 12 /* returnValue */
        start local 12 // java.lang.Object returnValue
        41: .line 182
            iconst_1
            istore 9 /* alreadyFreed */
        42: .line 185
            getstatic sun.rmi.server.UnicastRef.clientRefLog:Lsun/rmi/runtime/Log;
            getstatic sun.rmi.runtime.Log.BRIEF:Ljava/util/logging/Level;
            ldc "free connection (reuse = true)"
            invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
        43: .line 188
            aload 0 /* this */
            getfield sun.rmi.server.UnicastRef.ref:Lsun/rmi/transport/LiveRef;
            invokevirtual sun.rmi.transport.LiveRef.getChannel:()Lsun/rmi/transport/Channel;
            aload 6 /* conn */
            iconst_1
            invokeinterface sun.rmi.transport.Channel.free:(Lsun/rmi/transport/Connection;Z)V
        44: .line 190
            aload 12 /* returnValue */
            astore 14
        45: .line 200
            aload 7 /* call */
            invokeinterface java.rmi.server.RemoteCall.done:()V
        46: .line 201
            goto 49
      StackMap locals: sun.rmi.server.UnicastRef java.rmi.Remote java.lang.reflect.Method java.lang.Object[] long sun.rmi.transport.Connection java.rmi.server.RemoteCall int int java.lang.Class java.io.ObjectInput java.lang.Object top java.lang.Object
      StackMap stack: java.io.IOException
        47: pop
        48: .line 208
            iconst_0
            istore 8 /* reuse */
        49: .line 251
      StackMap locals:
      StackMap stack:
            iload 9 /* alreadyFreed */
            ifne 55
        50: .line 252
            getstatic sun.rmi.server.UnicastRef.clientRefLog:Lsun/rmi/runtime/Log;
            getstatic sun.rmi.runtime.Log.BRIEF:Ljava/util/logging/Level;
            invokevirtual sun.rmi.runtime.Log.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 54
        51: .line 253
            getstatic sun.rmi.server.UnicastRef.clientRefLog:Lsun/rmi/runtime/Log;
            getstatic sun.rmi.runtime.Log.BRIEF:Ljava/util/logging/Level;
            new java.lang.StringBuilder
            dup
            ldc "free connection (reuse = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        52: .line 254
            iload 8 /* reuse */
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        53: .line 253
            invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
        54: .line 256
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.rmi.server.UnicastRef.ref:Lsun/rmi/transport/LiveRef;
            invokevirtual sun.rmi.transport.LiveRef.getChannel:()Lsun/rmi/transport/Channel;
            aload 6 /* conn */
            iload 8 /* reuse */
            invokeinterface sun.rmi.transport.Channel.free:(Lsun/rmi/transport/Connection;Z)V
        55: .line 190
      StackMap locals:
      StackMap stack:
            aload 14
            areturn
        end local 12 // java.lang.Object returnValue
        end local 11 // java.io.ObjectInput in
        end local 10 // java.lang.Class rtype
        56: .line 192
      StackMap locals: sun.rmi.server.UnicastRef java.rmi.Remote java.lang.reflect.Method java.lang.Object[] long sun.rmi.transport.Connection java.rmi.server.RemoteCall int int
      StackMap stack: java.lang.Exception
            astore 10 /* e */
        start local 10 // java.lang.Exception e
        57: .line 194
            aload 7 /* call */
            checkcast sun.rmi.transport.StreamRemoteCall
            invokevirtual sun.rmi.transport.StreamRemoteCall.discardPendingRefs:()V
        58: .line 195
            getstatic sun.rmi.server.UnicastRef.clientRefLog:Lsun/rmi/runtime/Log;
            getstatic sun.rmi.runtime.Log.BRIEF:Ljava/util/logging/Level;
        59: .line 196
            new java.lang.StringBuilder
            dup
            aload 10 /* e */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " unmarshalling return: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 10 /* e */
        60: .line 195
            invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
        61: .line 197
            new java.rmi.UnmarshalException
            dup
            ldc "error unmarshalling return"
            aload 10 /* e */
            invokespecial java.rmi.UnmarshalException.<init>:(Ljava/lang/String;Ljava/lang/Exception;)V
            athrow
        end local 10 // java.lang.Exception e
        62: .line 198
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 13
        63: .line 200
            aload 7 /* call */
            invokeinterface java.rmi.server.RemoteCall.done:()V
        64: .line 201
            goto 67
      StackMap locals: sun.rmi.server.UnicastRef java.rmi.Remote java.lang.reflect.Method java.lang.Object[] long sun.rmi.transport.Connection java.rmi.server.RemoteCall int int top top top java.lang.Throwable
      StackMap stack: java.io.IOException
        65: pop
        66: .line 208
            iconst_0
            istore 8 /* reuse */
        67: .line 210
      StackMap locals:
      StackMap stack:
            aload 13
            athrow
        68: .line 212
      StackMap locals: sun.rmi.server.UnicastRef java.rmi.Remote java.lang.reflect.Method java.lang.Object[] long sun.rmi.transport.Connection java.rmi.server.RemoteCall int int
      StackMap stack: java.lang.RuntimeException
            astore 10 /* e */
        start local 10 // java.lang.RuntimeException e
        69: .line 221
            aload 7 /* call */
            ifnull 71
        70: .line 222
            aload 7 /* call */
            checkcast sun.rmi.transport.StreamRemoteCall
            invokevirtual sun.rmi.transport.StreamRemoteCall.getServerException:()Ljava/lang/Exception;
            aload 10 /* e */
            if_acmpeq 72
        71: .line 224
      StackMap locals: java.lang.RuntimeException
      StackMap stack:
            iconst_0
            istore 8 /* reuse */
        72: .line 226
      StackMap locals:
      StackMap stack:
            aload 10 /* e */
            athrow
        end local 10 // java.lang.RuntimeException e
        73: .line 228
      StackMap locals: sun.rmi.server.UnicastRef java.rmi.Remote java.lang.reflect.Method java.lang.Object[] long sun.rmi.transport.Connection java.rmi.server.RemoteCall int int
      StackMap stack: java.rmi.RemoteException
            astore 10 /* e */
        start local 10 // java.rmi.RemoteException e
        74: .line 236
            iconst_0
            istore 8 /* reuse */
        75: .line 237
            aload 10 /* e */
            athrow
        end local 10 // java.rmi.RemoteException e
        76: .line 239
      StackMap locals:
      StackMap stack: java.lang.Error
            astore 10 /* e */
        start local 10 // java.lang.Error e
        77: .line 243
            iconst_0
            istore 8 /* reuse */
        78: .line 244
            aload 10 /* e */
            athrow
        end local 10 // java.lang.Error e
        79: .line 246
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 15
        80: .line 251
            iload 9 /* alreadyFreed */
            ifne 86
        81: .line 252
            getstatic sun.rmi.server.UnicastRef.clientRefLog:Lsun/rmi/runtime/Log;
            getstatic sun.rmi.runtime.Log.BRIEF:Ljava/util/logging/Level;
            invokevirtual sun.rmi.runtime.Log.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 85
        82: .line 253
            getstatic sun.rmi.server.UnicastRef.clientRefLog:Lsun/rmi/runtime/Log;
            getstatic sun.rmi.runtime.Log.BRIEF:Ljava/util/logging/Level;
            new java.lang.StringBuilder
            dup
            ldc "free connection (reuse = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        83: .line 254
            iload 8 /* reuse */
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        84: .line 253
            invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
        85: .line 256
      StackMap locals: sun.rmi.server.UnicastRef java.rmi.Remote java.lang.reflect.Method java.lang.Object[] long sun.rmi.transport.Connection java.rmi.server.RemoteCall int int top top top top top java.lang.Throwable
      StackMap stack:
            aload 0 /* this */
            getfield sun.rmi.server.UnicastRef.ref:Lsun/rmi/transport/LiveRef;
            invokevirtual sun.rmi.transport.LiveRef.getChannel:()Lsun/rmi/transport/Channel;
            aload 6 /* conn */
            iload 8 /* reuse */
            invokeinterface sun.rmi.transport.Channel.free:(Lsun/rmi/transport/Connection;Z)V
        86: .line 258
      StackMap locals:
      StackMap stack:
            aload 15
            athrow
        end local 9 // boolean alreadyFreed
        end local 8 // boolean reuse
        end local 7 // java.rmi.server.RemoteCall call
        end local 6 // sun.rmi.transport.Connection conn
        end local 4 // long opnum
        end local 3 // java.lang.Object[] params
        end local 2 // java.lang.reflect.Method method
        end local 1 // java.rmi.Remote obj
        end local 0 // sun.rmi.server.UnicastRef this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   87     0          this  Lsun/rmi/server/UnicastRef;
            0   87     1           obj  Ljava/rmi/Remote;
            0   87     2        method  Ljava/lang/reflect/Method;
            0   87     3        params  [Ljava/lang/Object;
            0   87     4         opnum  J
            5   87     6          conn  Lsun/rmi/transport/Connection;
            6   87     7          call  Ljava/rmi/server/RemoteCall;
            7   87     8         reuse  Z
            8   87     9  alreadyFreed  Z
           12   19    10           out  Ljava/io/ObjectOutput;
           14   19    11         types  [Ljava/lang/Class;
           15   19    12             i  I
           21   25    10             e  Ljava/io/IOException;
           27   56    10         rtype  Ljava/lang/Class<*>;
           40   56    11            in  Ljava/io/ObjectInput;
           41   56    12   returnValue  Ljava/lang/Object;
           57   62    10             e  Ljava/lang/Exception;
           69   73    10             e  Ljava/lang/RuntimeException;
           74   76    10             e  Ljava/rmi/RemoteException;
           77   79    10             e  Ljava/lang/Error;
      Exception table:
        from    to  target  type
          11    19      20  Class java.io.IOException
          28    29      30  Class java.io.IOException
          45    46      47  Class java.io.IOException
          26    28      56  Class java.io.IOException
          39    45      56  Class java.io.IOException
          26    28      56  Class java.lang.ClassNotFoundException
          39    45      56  Class java.lang.ClassNotFoundException
          26    28      62  any
          39    45      62  any
          56    62      62  any
          63    64      65  Class java.io.IOException
           8    32      68  Class java.lang.RuntimeException
          39    49      68  Class java.lang.RuntimeException
          56    68      68  Class java.lang.RuntimeException
           8    32      73  Class java.rmi.RemoteException
          39    49      73  Class java.rmi.RemoteException
          56    68      73  Class java.rmi.RemoteException
           8    32      76  Class java.lang.Error
          39    49      76  Class java.lang.Error
          56    68      76  Class java.lang.Error
           8    32      79  any
          39    49      79  any
          56    79      79  any
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
        Name  Flags
      obj     
      method  
      params  
      opnum   

  protected void marshalCustomCallData(java.io.ObjectOutput);
    descriptor: (Ljava/io/ObjectOutput;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // sun.rmi.server.UnicastRef this
        start local 1 // java.io.ObjectOutput out
         0: .line 262
            return
        end local 1 // java.io.ObjectOutput out
        end local 0 // sun.rmi.server.UnicastRef this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/rmi/server/UnicastRef;
            0    1     1   out  Ljava/io/ObjectOutput;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      out   

  protected static void marshalValue(java.lang.Class<?>, , java.io.ObjectOutput);
    descriptor: (Ljava/lang/Class;Ljava/lang/Object;Ljava/io/ObjectOutput;)V
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // java.lang.Class type
        start local 1 // java.lang.Object value
        start local 2 // java.io.ObjectOutput out
         0: .line 272
            aload 0 /* type */
            invokevirtual java.lang.Class.isPrimitive:()Z
            ifeq 26
         1: .line 273
            aload 0 /* type */
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            if_acmpne 4
         2: .line 274
            aload 2 /* out */
            aload 1 /* value */
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            invokeinterface java.io.ObjectOutput.writeInt:(I)V
         3: .line 275
            goto 27
      StackMap locals:
      StackMap stack:
         4: aload 0 /* type */
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            if_acmpne 7
         5: .line 276
            aload 2 /* out */
            aload 1 /* value */
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            invokeinterface java.io.ObjectOutput.writeBoolean:(Z)V
         6: .line 277
            goto 27
      StackMap locals:
      StackMap stack:
         7: aload 0 /* type */
            getstatic java.lang.Byte.TYPE:Ljava/lang/Class;
            if_acmpne 10
         8: .line 278
            aload 2 /* out */
            aload 1 /* value */
            checkcast java.lang.Byte
            invokevirtual java.lang.Byte.byteValue:()B
            invokeinterface java.io.ObjectOutput.writeByte:(I)V
         9: .line 279
            goto 27
      StackMap locals:
      StackMap stack:
        10: aload 0 /* type */
            getstatic java.lang.Character.TYPE:Ljava/lang/Class;
            if_acmpne 13
        11: .line 280
            aload 2 /* out */
            aload 1 /* value */
            checkcast java.lang.Character
            invokevirtual java.lang.Character.charValue:()C
            invokeinterface java.io.ObjectOutput.writeChar:(I)V
        12: .line 281
            goto 27
      StackMap locals:
      StackMap stack:
        13: aload 0 /* type */
            getstatic java.lang.Short.TYPE:Ljava/lang/Class;
            if_acmpne 16
        14: .line 282
            aload 2 /* out */
            aload 1 /* value */
            checkcast java.lang.Short
            invokevirtual java.lang.Short.shortValue:()S
            invokeinterface java.io.ObjectOutput.writeShort:(I)V
        15: .line 283
            goto 27
      StackMap locals:
      StackMap stack:
        16: aload 0 /* type */
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            if_acmpne 19
        17: .line 284
            aload 2 /* out */
            aload 1 /* value */
            checkcast java.lang.Long
            invokevirtual java.lang.Long.longValue:()J
            invokeinterface java.io.ObjectOutput.writeLong:(J)V
        18: .line 285
            goto 27
      StackMap locals:
      StackMap stack:
        19: aload 0 /* type */
            getstatic java.lang.Float.TYPE:Ljava/lang/Class;
            if_acmpne 22
        20: .line 286
            aload 2 /* out */
            aload 1 /* value */
            checkcast java.lang.Float
            invokevirtual java.lang.Float.floatValue:()F
            invokeinterface java.io.ObjectOutput.writeFloat:(F)V
        21: .line 287
            goto 27
      StackMap locals:
      StackMap stack:
        22: aload 0 /* type */
            getstatic java.lang.Double.TYPE:Ljava/lang/Class;
            if_acmpne 25
        23: .line 288
            aload 2 /* out */
            aload 1 /* value */
            checkcast java.lang.Double
            invokevirtual java.lang.Double.doubleValue:()D
            invokeinterface java.io.ObjectOutput.writeDouble:(D)V
        24: .line 289
            goto 27
        25: .line 290
      StackMap locals:
      StackMap stack:
            new java.lang.Error
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unrecognized primitive type: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* type */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        26: .line 293
      StackMap locals:
      StackMap stack:
            aload 2 /* out */
            aload 1 /* value */
            invokeinterface java.io.ObjectOutput.writeObject:(Ljava/lang/Object;)V
        27: .line 295
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.io.ObjectOutput out
        end local 1 // java.lang.Object value
        end local 0 // java.lang.Class type
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   28     0   type  Ljava/lang/Class<*>;
            0   28     1  value  Ljava/lang/Object;
            0   28     2    out  Ljava/io/ObjectOutput;
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/lang/Class<*>;Ljava/lang/Object;Ljava/io/ObjectOutput;)V
    MethodParameters:
       Name  Flags
      type   
      value  
      out    

  protected static  unmarshalValue(java.lang.Class<?>, java.io.ObjectInput);
    descriptor: (Ljava/lang/Class;Ljava/io/ObjectInput;)Ljava/lang/Object;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // java.lang.Class type
        start local 1 // java.io.ObjectInput in
         0: .line 304
            aload 0 /* type */
            invokevirtual java.lang.Class.isPrimitive:()Z
            ifeq 18
         1: .line 305
            aload 0 /* type */
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            if_acmpne 3
         2: .line 306
            aload 1 /* in */
            invokeinterface java.io.ObjectInput.readInt:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            areturn
         3: .line 307
      StackMap locals:
      StackMap stack:
            aload 0 /* type */
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            if_acmpne 5
         4: .line 308
            aload 1 /* in */
            invokeinterface java.io.ObjectInput.readBoolean:()Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            areturn
         5: .line 309
      StackMap locals:
      StackMap stack:
            aload 0 /* type */
            getstatic java.lang.Byte.TYPE:Ljava/lang/Class;
            if_acmpne 7
         6: .line 310
            aload 1 /* in */
            invokeinterface java.io.ObjectInput.readByte:()B
            invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
            areturn
         7: .line 311
      StackMap locals:
      StackMap stack:
            aload 0 /* type */
            getstatic java.lang.Character.TYPE:Ljava/lang/Class;
            if_acmpne 9
         8: .line 312
            aload 1 /* in */
            invokeinterface java.io.ObjectInput.readChar:()C
            invokestatic java.lang.Character.valueOf:(C)Ljava/lang/Character;
            areturn
         9: .line 313
      StackMap locals:
      StackMap stack:
            aload 0 /* type */
            getstatic java.lang.Short.TYPE:Ljava/lang/Class;
            if_acmpne 11
        10: .line 314
            aload 1 /* in */
            invokeinterface java.io.ObjectInput.readShort:()S
            invokestatic java.lang.Short.valueOf:(S)Ljava/lang/Short;
            areturn
        11: .line 315
      StackMap locals:
      StackMap stack:
            aload 0 /* type */
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            if_acmpne 13
        12: .line 316
            aload 1 /* in */
            invokeinterface java.io.ObjectInput.readLong:()J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            areturn
        13: .line 317
      StackMap locals:
      StackMap stack:
            aload 0 /* type */
            getstatic java.lang.Float.TYPE:Ljava/lang/Class;
            if_acmpne 15
        14: .line 318
            aload 1 /* in */
            invokeinterface java.io.ObjectInput.readFloat:()F
            invokestatic java.lang.Float.valueOf:(F)Ljava/lang/Float;
            areturn
        15: .line 319
      StackMap locals:
      StackMap stack:
            aload 0 /* type */
            getstatic java.lang.Double.TYPE:Ljava/lang/Class;
            if_acmpne 17
        16: .line 320
            aload 1 /* in */
            invokeinterface java.io.ObjectInput.readDouble:()D
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            areturn
        17: .line 322
      StackMap locals:
      StackMap stack:
            new java.lang.Error
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unrecognized primitive type: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* type */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        18: .line 324
      StackMap locals:
      StackMap stack:
            aload 0 /* type */
            ldc Ljava/lang/String;
            if_acmpne 20
            aload 1 /* in */
            instanceof java.io.ObjectInputStream
            ifeq 20
        19: .line 325
            invokestatic jdk.internal.misc.SharedSecrets.getJavaObjectInputStreamReadString:()Ljdk/internal/misc/JavaObjectInputStreamReadString;
            aload 1 /* in */
            checkcast java.io.ObjectInputStream
            invokeinterface jdk.internal.misc.JavaObjectInputStreamReadString.readString:(Ljava/io/ObjectInputStream;)Ljava/lang/String;
            areturn
        20: .line 327
      StackMap locals:
      StackMap stack:
            aload 1 /* in */
            invokeinterface java.io.ObjectInput.readObject:()Ljava/lang/Object;
            areturn
        end local 1 // java.io.ObjectInput in
        end local 0 // java.lang.Class type
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   21     0  type  Ljava/lang/Class<*>;
            0   21     1    in  Ljava/io/ObjectInput;
    Exceptions:
      throws java.io.IOException, java.lang.ClassNotFoundException
    Signature: (Ljava/lang/Class<*>;Ljava/io/ObjectInput;)Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      type  
      in    

  public java.rmi.server.RemoteCall newCall(java.rmi.server.RemoteObject, java.rmi.server.Operation[], int, long);
    descriptor: (Ljava/rmi/server/RemoteObject;[Ljava/rmi/server/Operation;IJ)Ljava/rmi/server/RemoteCall;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=8, args_size=5
        start local 0 // sun.rmi.server.UnicastRef this
        start local 1 // java.rmi.server.RemoteObject obj
        start local 2 // java.rmi.server.Operation[] ops
        start local 3 // int opnum
        start local 4 // long hash
         0: .line 341
            getstatic sun.rmi.server.UnicastRef.clientRefLog:Lsun/rmi/runtime/Log;
            getstatic sun.rmi.runtime.Log.BRIEF:Ljava/util/logging/Level;
            ldc "get connection"
            invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
         1: .line 343
            aload 0 /* this */
            getfield sun.rmi.server.UnicastRef.ref:Lsun/rmi/transport/LiveRef;
            invokevirtual sun.rmi.transport.LiveRef.getChannel:()Lsun/rmi/transport/Channel;
            invokeinterface sun.rmi.transport.Channel.newConnection:()Lsun/rmi/transport/Connection;
            astore 6 /* conn */
        start local 6 // sun.rmi.transport.Connection conn
         2: .line 345
            getstatic sun.rmi.server.UnicastRef.clientRefLog:Lsun/rmi/runtime/Log;
            getstatic sun.rmi.runtime.Log.VERBOSE:Ljava/util/logging/Level;
            ldc "create call context"
            invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
         3: .line 348
            getstatic sun.rmi.server.UnicastRef.clientCallLog:Lsun/rmi/runtime/Log;
            getstatic sun.rmi.runtime.Log.VERBOSE:Ljava/util/logging/Level;
            invokevirtual sun.rmi.runtime.Log.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 5
         4: .line 349
            aload 0 /* this */
            aload 1 /* obj */
            aload 2 /* ops */
            iload 3 /* opnum */
            aaload
            invokevirtual sun.rmi.server.UnicastRef.logClientCall:(Ljava/lang/Object;Ljava/lang/Object;)V
         5: .line 353
      StackMap locals: sun.rmi.transport.Connection
      StackMap stack:
            new sun.rmi.transport.StreamRemoteCall
            dup
            aload 6 /* conn */
            aload 0 /* this */
            getfield sun.rmi.server.UnicastRef.ref:Lsun/rmi/transport/LiveRef;
            invokevirtual sun.rmi.transport.LiveRef.getObjID:()Ljava/rmi/server/ObjID;
            iload 3 /* opnum */
            lload 4 /* hash */
            invokespecial sun.rmi.transport.StreamRemoteCall.<init>:(Lsun/rmi/transport/Connection;Ljava/rmi/server/ObjID;IJ)V
         6: .line 352
            astore 7 /* call */
        start local 7 // java.rmi.server.RemoteCall call
         7: .line 355
            aload 0 /* this */
            aload 7 /* call */
            invokeinterface java.rmi.server.RemoteCall.getOutputStream:()Ljava/io/ObjectOutput;
            invokevirtual sun.rmi.server.UnicastRef.marshalCustomCallData:(Ljava/io/ObjectOutput;)V
         8: .line 356
            goto 11
      StackMap locals: sun.rmi.server.UnicastRef java.rmi.server.RemoteObject java.rmi.server.Operation[] int long sun.rmi.transport.Connection java.rmi.server.RemoteCall
      StackMap stack: java.io.IOException
         9: pop
        10: .line 357
            new java.rmi.MarshalException
            dup
            ldc "error marshaling custom call data"
            invokespecial java.rmi.MarshalException.<init>:(Ljava/lang/String;)V
            athrow
        11: .line 360
      StackMap locals:
      StackMap stack:
            aload 7 /* call */
        12: areturn
        end local 7 // java.rmi.server.RemoteCall call
        13: .line 361
      StackMap locals: sun.rmi.server.UnicastRef java.rmi.server.RemoteObject java.rmi.server.Operation[] int long sun.rmi.transport.Connection
      StackMap stack: java.rmi.RemoteException
            astore 7 /* e */
        start local 7 // java.rmi.RemoteException e
        14: .line 362
            aload 0 /* this */
            getfield sun.rmi.server.UnicastRef.ref:Lsun/rmi/transport/LiveRef;
            invokevirtual sun.rmi.transport.LiveRef.getChannel:()Lsun/rmi/transport/Channel;
            aload 6 /* conn */
            iconst_0
            invokeinterface sun.rmi.transport.Channel.free:(Lsun/rmi/transport/Connection;Z)V
        15: .line 363
            aload 7 /* e */
            athrow
        end local 7 // java.rmi.RemoteException e
        end local 6 // sun.rmi.transport.Connection conn
        end local 4 // long hash
        end local 3 // int opnum
        end local 2 // java.rmi.server.Operation[] ops
        end local 1 // java.rmi.server.RemoteObject obj
        end local 0 // sun.rmi.server.UnicastRef this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   16     0   this  Lsun/rmi/server/UnicastRef;
            0   16     1    obj  Ljava/rmi/server/RemoteObject;
            0   16     2    ops  [Ljava/rmi/server/Operation;
            0   16     3  opnum  I
            0   16     4   hash  J
            2   16     6   conn  Lsun/rmi/transport/Connection;
            7   13     7   call  Ljava/rmi/server/RemoteCall;
           14   16     7      e  Ljava/rmi/RemoteException;
      Exception table:
        from    to  target  type
           7     8       9  Class java.io.IOException
           2    12      13  Class java.rmi.RemoteException
    Exceptions:
      throws java.rmi.RemoteException
    MethodParameters:
       Name  Flags
      obj    
      ops    
      opnum  
      hash   

  public void invoke(java.rmi.server.RemoteCall);
    descriptor: (Ljava/rmi/server/RemoteCall;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // sun.rmi.server.UnicastRef this
        start local 1 // java.rmi.server.RemoteCall call
         0: .line 378
            getstatic sun.rmi.server.UnicastRef.clientRefLog:Lsun/rmi/runtime/Log;
            getstatic sun.rmi.runtime.Log.VERBOSE:Ljava/util/logging/Level;
            ldc "execute call"
            invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
         1: .line 380
            aload 1 /* call */
            invokeinterface java.rmi.server.RemoteCall.executeCall:()V
         2: .line 382
            goto 19
      StackMap locals:
      StackMap stack: java.rmi.RemoteException
         3: astore 2 /* e */
        start local 2 // java.rmi.RemoteException e
         4: .line 386
            getstatic sun.rmi.server.UnicastRef.clientRefLog:Lsun/rmi/runtime/Log;
            getstatic sun.rmi.runtime.Log.BRIEF:Ljava/util/logging/Level;
            ldc "exception: "
            aload 2 /* e */
            invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
         5: .line 387
            aload 0 /* this */
            aload 1 /* call */
            iconst_0
            invokevirtual sun.rmi.server.UnicastRef.free:(Ljava/rmi/server/RemoteCall;Z)V
         6: .line 388
            aload 2 /* e */
            athrow
        end local 2 // java.rmi.RemoteException e
         7: .line 390
      StackMap locals:
      StackMap stack: java.lang.Error
            astore 2 /* e */
        start local 2 // java.lang.Error e
         8: .line 394
            getstatic sun.rmi.server.UnicastRef.clientRefLog:Lsun/rmi/runtime/Log;
            getstatic sun.rmi.runtime.Log.BRIEF:Ljava/util/logging/Level;
            ldc "error: "
            aload 2 /* e */
            invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
         9: .line 395
            aload 0 /* this */
            aload 1 /* call */
            iconst_0
            invokevirtual sun.rmi.server.UnicastRef.free:(Ljava/rmi/server/RemoteCall;Z)V
        10: .line 396
            aload 2 /* e */
            athrow
        end local 2 // java.lang.Error e
        11: .line 398
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
            astore 2 /* e */
        start local 2 // java.lang.RuntimeException e
        12: .line 404
            getstatic sun.rmi.server.UnicastRef.clientRefLog:Lsun/rmi/runtime/Log;
            getstatic sun.rmi.runtime.Log.BRIEF:Ljava/util/logging/Level;
            ldc "exception: "
            aload 2 /* e */
            invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
        13: .line 405
            aload 0 /* this */
            aload 1 /* call */
            iconst_0
            invokevirtual sun.rmi.server.UnicastRef.free:(Ljava/rmi/server/RemoteCall;Z)V
        14: .line 406
            aload 2 /* e */
            athrow
        end local 2 // java.lang.RuntimeException e
        15: .line 408
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 2 /* e */
        start local 2 // java.lang.Exception e
        16: .line 413
            getstatic sun.rmi.server.UnicastRef.clientRefLog:Lsun/rmi/runtime/Log;
            getstatic sun.rmi.runtime.Log.BRIEF:Ljava/util/logging/Level;
            ldc "exception: "
            aload 2 /* e */
            invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
        17: .line 414
            aload 0 /* this */
            aload 1 /* call */
            iconst_1
            invokevirtual sun.rmi.server.UnicastRef.free:(Ljava/rmi/server/RemoteCall;Z)V
        18: .line 416
            aload 2 /* e */
            athrow
        end local 2 // java.lang.Exception e
        19: .line 425
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.rmi.server.RemoteCall call
        end local 0 // sun.rmi.server.UnicastRef this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   20     0  this  Lsun/rmi/server/UnicastRef;
            0   20     1  call  Ljava/rmi/server/RemoteCall;
            4    7     2     e  Ljava/rmi/RemoteException;
            8   11     2     e  Ljava/lang/Error;
           12   15     2     e  Ljava/lang/RuntimeException;
           16   19     2     e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     2       3  Class java.rmi.RemoteException
           0     2       7  Class java.lang.Error
           0     2      11  Class java.lang.RuntimeException
           0     2      15  Class java.lang.Exception
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
      Name  Flags
      call  

  private void free(java.rmi.server.RemoteCall, boolean);
    descriptor: (Ljava/rmi/server/RemoteCall;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // sun.rmi.server.UnicastRef this
        start local 1 // java.rmi.server.RemoteCall call
        start local 2 // boolean reuse
         0: .line 431
            aload 1 /* call */
            checkcast sun.rmi.transport.StreamRemoteCall
            invokevirtual sun.rmi.transport.StreamRemoteCall.getConnection:()Lsun/rmi/transport/Connection;
            astore 3 /* conn */
        start local 3 // sun.rmi.transport.Connection conn
         1: .line 432
            aload 0 /* this */
            getfield sun.rmi.server.UnicastRef.ref:Lsun/rmi/transport/LiveRef;
            invokevirtual sun.rmi.transport.LiveRef.getChannel:()Lsun/rmi/transport/Channel;
            aload 3 /* conn */
            iload 2 /* reuse */
            invokeinterface sun.rmi.transport.Channel.free:(Lsun/rmi/transport/Connection;Z)V
         2: .line 433
            return
        end local 3 // sun.rmi.transport.Connection conn
        end local 2 // boolean reuse
        end local 1 // java.rmi.server.RemoteCall call
        end local 0 // sun.rmi.server.UnicastRef this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lsun/rmi/server/UnicastRef;
            0    3     1   call  Ljava/rmi/server/RemoteCall;
            0    3     2  reuse  Z
            1    3     3   conn  Lsun/rmi/transport/Connection;
    Exceptions:
      throws java.rmi.RemoteException
    MethodParameters:
       Name  Flags
      call   
      reuse  

  public void done(java.rmi.server.RemoteCall);
    descriptor: (Ljava/rmi/server/RemoteCall;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.rmi.server.UnicastRef this
        start local 1 // java.rmi.server.RemoteCall call
         0: .line 446
            getstatic sun.rmi.server.UnicastRef.clientRefLog:Lsun/rmi/runtime/Log;
            getstatic sun.rmi.runtime.Log.BRIEF:Ljava/util/logging/Level;
            ldc "free connection (reuse = true)"
            invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
         1: .line 449
            aload 0 /* this */
            aload 1 /* call */
            iconst_1
            invokevirtual sun.rmi.server.UnicastRef.free:(Ljava/rmi/server/RemoteCall;Z)V
         2: .line 452
            aload 1 /* call */
            invokeinterface java.rmi.server.RemoteCall.done:()V
         3: .line 453
            goto 5
      StackMap locals:
      StackMap stack: java.io.IOException
         4: pop
         5: .line 460
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.rmi.server.RemoteCall call
        end local 0 // sun.rmi.server.UnicastRef this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lsun/rmi/server/UnicastRef;
            0    6     1  call  Ljava/rmi/server/RemoteCall;
      Exception table:
        from    to  target  type
           2     3       4  Class java.io.IOException
    Exceptions:
      throws java.rmi.RemoteException
    MethodParameters:
      Name  Flags
      call  

  void logClientCall(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // sun.rmi.server.UnicastRef this
        start local 1 // java.lang.Object obj
        start local 2 // java.lang.Object method
         0: .line 467
            getstatic sun.rmi.server.UnicastRef.clientCallLog:Lsun/rmi/runtime/Log;
            getstatic sun.rmi.runtime.Log.VERBOSE:Ljava/util/logging/Level;
            new java.lang.StringBuilder
            dup
            ldc "outbound call: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         1: .line 468
            aload 0 /* this */
            getfield sun.rmi.server.UnicastRef.ref:Lsun/rmi/transport/LiveRef;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " : "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* obj */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 469
            aload 0 /* this */
            getfield sun.rmi.server.UnicastRef.ref:Lsun/rmi/transport/LiveRef;
            invokevirtual sun.rmi.transport.LiveRef.getObjID:()Ljava/rmi/server/ObjID;
            invokevirtual java.rmi.server.ObjID.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ": "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* method */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         3: .line 467
            invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
         4: .line 470
            return
        end local 2 // java.lang.Object method
        end local 1 // java.lang.Object obj
        end local 0 // sun.rmi.server.UnicastRef this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lsun/rmi/server/UnicastRef;
            0    5     1     obj  Ljava/lang/Object;
            0    5     2  method  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      obj     
      method  

  public java.lang.String getRefClass(java.io.ObjectOutput);
    descriptor: (Ljava/io/ObjectOutput;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // sun.rmi.server.UnicastRef this
        start local 1 // java.io.ObjectOutput out
         0: .line 476
            ldc "UnicastRef"
            areturn
        end local 1 // java.io.ObjectOutput out
        end local 0 // sun.rmi.server.UnicastRef this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/rmi/server/UnicastRef;
            0    1     1   out  Ljava/io/ObjectOutput;
    MethodParameters:
      Name  Flags
      out   

  public void writeExternal(java.io.ObjectOutput);
    descriptor: (Ljava/io/ObjectOutput;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.rmi.server.UnicastRef this
        start local 1 // java.io.ObjectOutput out
         0: .line 483
            aload 0 /* this */
            getfield sun.rmi.server.UnicastRef.ref:Lsun/rmi/transport/LiveRef;
            aload 1 /* out */
            iconst_0
            invokevirtual sun.rmi.transport.LiveRef.write:(Ljava/io/ObjectOutput;Z)V
         1: .line 484
            return
        end local 1 // java.io.ObjectOutput out
        end local 0 // sun.rmi.server.UnicastRef this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/rmi/server/UnicastRef;
            0    2     1   out  Ljava/io/ObjectOutput;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      out   

  public void readExternal(java.io.ObjectInput);
    descriptor: (Ljava/io/ObjectInput;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.rmi.server.UnicastRef this
        start local 1 // java.io.ObjectInput in
         0: .line 494
            aload 0 /* this */
            aload 1 /* in */
            iconst_0
            invokestatic sun.rmi.transport.LiveRef.read:(Ljava/io/ObjectInput;Z)Lsun/rmi/transport/LiveRef;
            putfield sun.rmi.server.UnicastRef.ref:Lsun/rmi/transport/LiveRef;
         1: .line 495
            return
        end local 1 // java.io.ObjectInput in
        end local 0 // sun.rmi.server.UnicastRef this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/rmi/server/UnicastRef;
            0    2     1    in  Ljava/io/ObjectInput;
    Exceptions:
      throws java.io.IOException, java.lang.ClassNotFoundException
    MethodParameters:
      Name  Flags
      in    

  public java.lang.String remoteToString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // sun.rmi.server.UnicastRef this
         0: .line 502
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokestatic sun.rmi.server.Util.getUnqualifiedName:(Ljava/lang/Class;)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " [liveRef: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield sun.rmi.server.UnicastRef.ref:Lsun/rmi/transport/LiveRef;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // sun.rmi.server.UnicastRef this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/rmi/server/UnicastRef;

  public int remoteHashCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.rmi.server.UnicastRef this
         0: .line 509
            aload 0 /* this */
            getfield sun.rmi.server.UnicastRef.ref:Lsun/rmi/transport/LiveRef;
            invokevirtual sun.rmi.transport.LiveRef.hashCode:()I
            ireturn
        end local 0 // sun.rmi.server.UnicastRef this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/rmi/server/UnicastRef;

  public boolean remoteEquals(java.rmi.server.RemoteRef);
    descriptor: (Ljava/rmi/server/RemoteRef;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.rmi.server.UnicastRef this
        start local 1 // java.rmi.server.RemoteRef sub
         0: .line 515
            aload 1 /* sub */
            instanceof sun.rmi.server.UnicastRef
            ifeq 2
         1: .line 516
            aload 0 /* this */
            getfield sun.rmi.server.UnicastRef.ref:Lsun/rmi/transport/LiveRef;
            aload 1 /* sub */
            checkcast sun.rmi.server.UnicastRef
            getfield sun.rmi.server.UnicastRef.ref:Lsun/rmi/transport/LiveRef;
            invokevirtual sun.rmi.transport.LiveRef.remoteEquals:(Ljava/lang/Object;)Z
            ireturn
         2: .line 517
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // java.rmi.server.RemoteRef sub
        end local 0 // sun.rmi.server.UnicastRef this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/rmi/server/UnicastRef;
            0    3     1   sub  Ljava/rmi/server/RemoteRef;
    MethodParameters:
      Name  Flags
      sub   

  private static java.lang.Boolean lambda$0();
    descriptor: ()Ljava/lang/Boolean;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 70
            ldc "sun.rmi.client.logCalls"
            invokestatic java.lang.Boolean.getBoolean:(Ljava/lang/String;)Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "UnicastRef.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles