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 59
            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 58
            putstatic sun.rmi.server.UnicastRef.clientRefLog:Lsun/rmi/runtime/Log;
         2: .line 65
            ldc "sun.rmi.client.call"
            ldc "RMI"
         3: .line 66
            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 65
            invokestatic sun.rmi.runtime.Log.getLog:(Ljava/lang/String;Ljava/lang/String;Z)Lsun/rmi/runtime/Log;
         5: .line 64
            putstatic sun.rmi.server.UnicastRef.clientCallLog:Lsun/rmi/runtime/Log;
         6: .line 68
            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 75
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 76
            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 81
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 82
            aload 0 /* this */
            aload 1 /* liveRef */
            putfield sun.rmi.server.UnicastRef.ref:Lsun/rmi/transport/LiveRef;
         2: .line 83
            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 94
            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 121
            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 122
            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 125
      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 126
            aload 0 /* this */
            aload 1 /* obj */
            aload 2 /* method */
            invokevirtual sun.rmi.server.UnicastRef.logClientCall:(Ljava/lang/Object;Ljava/lang/Object;)V
         4: .line 129
      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 130
            aconst_null
            astore 7 /* call */
        start local 7 // java.rmi.server.RemoteCall call
         6: .line 131
            iconst_1
            istore 8 /* reuse */
        start local 8 // boolean reuse
         7: .line 136
            iconst_0
            istore 9 /* alreadyFreed */
        start local 9 // boolean alreadyFreed
         8: .line 139
            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 140
            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 144
      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 148
            aload 7 /* call */
            invokeinterface java.rmi.server.RemoteCall.getOutputStream:()Ljava/io/ObjectOutput;
            astore 10 /* out */
        start local 10 // java.io.ObjectOutput out
        12: .line 149
            aload 0 /* this */
            aload 10 /* out */
            invokevirtual sun.rmi.server.UnicastRef.marshalCustomCallData:(Ljava/io/ObjectOutput;)V
        13: .line 150
            aload 2 /* method */
            invokevirtual java.lang.reflect.Method.getParameterTypes:()[Ljava/lang/Class;
            astore 11 /* types */
        start local 11 // java.lang.Class[] types
        14: .line 151
            iconst_0
            istore 12 /* i */
        start local 12 // int i
        15: goto 18
        16: .line 152
      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 151
            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 154
            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 155
            getstatic sun.rmi.server.UnicastRef.clientRefLog:Lsun/rmi/runtime/Log;
            getstatic sun.rmi.runtime.Log.BRIEF:Ljava/util/logging/Level;
        22: .line 156
            ldc "IOException marshalling arguments: "
            aload 10 /* e */
        23: .line 155
            invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
        24: .line 157
            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 161
      StackMap locals:
      StackMap stack:
            aload 7 /* call */
            invokeinterface java.rmi.server.RemoteCall.executeCall:()V
        26: .line 164
            aload 2 /* method */
            invokevirtual java.lang.reflect.Method.getReturnType:()Ljava/lang/Class;
            astore 10 /* rtype */
        start local 10 // java.lang.Class rtype
        27: .line 165
            aload 10 /* rtype */
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            if_acmpne 39
        28: .line 197
            aload 7 /* call */
            invokeinterface java.rmi.server.RemoteCall.done:()V
        29: .line 198
            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 205
            iconst_0
            istore 8 /* reuse */
        32: .line 248
      StackMap locals:
      StackMap stack:
            iload 9 /* alreadyFreed */
            ifne 38
        33: .line 249
            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 250
            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 251
            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 250
            invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
        37: .line 253
      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 166
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        39: .line 167
      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 174
            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 179
            iconst_1
            istore 9 /* alreadyFreed */
        42: .line 182
            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 185
            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 187
            aload 12 /* returnValue */
            astore 14
        45: .line 197
            aload 7 /* call */
            invokeinterface java.rmi.server.RemoteCall.done:()V
        46: .line 198
            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 205
            iconst_0
            istore 8 /* reuse */
        49: .line 248
      StackMap locals:
      StackMap stack:
            iload 9 /* alreadyFreed */
            ifne 55
        50: .line 249
            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 250
            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 251
            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 250
            invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
        54: .line 253
      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 187
      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 189
      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 191
            aload 7 /* call */
            checkcast sun.rmi.transport.StreamRemoteCall
            invokevirtual sun.rmi.transport.StreamRemoteCall.discardPendingRefs:()V
        58: .line 192
            getstatic sun.rmi.server.UnicastRef.clientRefLog:Lsun/rmi/runtime/Log;
            getstatic sun.rmi.runtime.Log.BRIEF:Ljava/util/logging/Level;
        59: .line 193
            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 192
            invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
        61: .line 194
            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 195
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 13
        63: .line 197
            aload 7 /* call */
            invokeinterface java.rmi.server.RemoteCall.done:()V
        64: .line 198
            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 205
            iconst_0
            istore 8 /* reuse */
        67: .line 207
      StackMap locals:
      StackMap stack:
            aload 13
            athrow
        68: .line 209
      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 218
            aload 7 /* call */
            ifnull 71
        70: .line 219
            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 221
      StackMap locals: java.lang.RuntimeException
      StackMap stack:
            iconst_0
            istore 8 /* reuse */
        72: .line 223
      StackMap locals:
      StackMap stack:
            aload 10 /* e */
            athrow
        end local 10 // java.lang.RuntimeException e
        73: .line 225
      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 233
            iconst_0
            istore 8 /* reuse */
        75: .line 234
            aload 10 /* e */
            athrow
        end local 10 // java.rmi.RemoteException e
        76: .line 236
      StackMap locals:
      StackMap stack: java.lang.Error
            astore 10 /* e */
        start local 10 // java.lang.Error e
        77: .line 240
            iconst_0
            istore 8 /* reuse */
        78: .line 241
            aload 10 /* e */
            athrow
        end local 10 // java.lang.Error e
        79: .line 243
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 15
        80: .line 248
            iload 9 /* alreadyFreed */
            ifne 86
        81: .line 249
            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 250
            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 251
            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 250
            invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
        85: .line 253
      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 255
      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 259
            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 269
            aload 0 /* type */
            invokevirtual java.lang.Class.isPrimitive:()Z
            ifeq 26
         1: .line 270
            aload 0 /* type */
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            if_acmpne 4
         2: .line 271
            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 272
            goto 27
      StackMap locals:
      StackMap stack:
         4: aload 0 /* type */
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            if_acmpne 7
         5: .line 273
            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 274
            goto 27
      StackMap locals:
      StackMap stack:
         7: aload 0 /* type */
            getstatic java.lang.Byte.TYPE:Ljava/lang/Class;
            if_acmpne 10
         8: .line 275
            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 276
            goto 27
      StackMap locals:
      StackMap stack:
        10: aload 0 /* type */
            getstatic java.lang.Character.TYPE:Ljava/lang/Class;
            if_acmpne 13
        11: .line 277
            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 278
            goto 27
      StackMap locals:
      StackMap stack:
        13: aload 0 /* type */
            getstatic java.lang.Short.TYPE:Ljava/lang/Class;
            if_acmpne 16
        14: .line 279
            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 280
            goto 27
      StackMap locals:
      StackMap stack:
        16: aload 0 /* type */
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            if_acmpne 19
        17: .line 281
            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 282
            goto 27
      StackMap locals:
      StackMap stack:
        19: aload 0 /* type */
            getstatic java.lang.Float.TYPE:Ljava/lang/Class;
            if_acmpne 22
        20: .line 283
            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 284
            goto 27
      StackMap locals:
      StackMap stack:
        22: aload 0 /* type */
            getstatic java.lang.Double.TYPE:Ljava/lang/Class;
            if_acmpne 25
        23: .line 285
            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 286
            goto 27
        25: .line 287
      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 290
      StackMap locals:
      StackMap stack:
            aload 2 /* out */
            aload 1 /* value */
            invokeinterface java.io.ObjectOutput.writeObject:(Ljava/lang/Object;)V
        27: .line 292
      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 301
            aload 0 /* type */
            invokevirtual java.lang.Class.isPrimitive:()Z
            ifeq 18
         1: .line 302
            aload 0 /* type */
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            if_acmpne 3
         2: .line 303
            aload 1 /* in */
            invokeinterface java.io.ObjectInput.readInt:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            areturn
         3: .line 304
      StackMap locals:
      StackMap stack:
            aload 0 /* type */
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            if_acmpne 5
         4: .line 305
            aload 1 /* in */
            invokeinterface java.io.ObjectInput.readBoolean:()Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            areturn
         5: .line 306
      StackMap locals:
      StackMap stack:
            aload 0 /* type */
            getstatic java.lang.Byte.TYPE:Ljava/lang/Class;
            if_acmpne 7
         6: .line 307
            aload 1 /* in */
            invokeinterface java.io.ObjectInput.readByte:()B
            invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
            areturn
         7: .line 308
      StackMap locals:
      StackMap stack:
            aload 0 /* type */
            getstatic java.lang.Character.TYPE:Ljava/lang/Class;
            if_acmpne 9
         8: .line 309
            aload 1 /* in */
            invokeinterface java.io.ObjectInput.readChar:()C
            invokestatic java.lang.Character.valueOf:(C)Ljava/lang/Character;
            areturn
         9: .line 310
      StackMap locals:
      StackMap stack:
            aload 0 /* type */
            getstatic java.lang.Short.TYPE:Ljava/lang/Class;
            if_acmpne 11
        10: .line 311
            aload 1 /* in */
            invokeinterface java.io.ObjectInput.readShort:()S
            invokestatic java.lang.Short.valueOf:(S)Ljava/lang/Short;
            areturn
        11: .line 312
      StackMap locals:
      StackMap stack:
            aload 0 /* type */
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            if_acmpne 13
        12: .line 313
            aload 1 /* in */
            invokeinterface java.io.ObjectInput.readLong:()J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            areturn
        13: .line 314
      StackMap locals:
      StackMap stack:
            aload 0 /* type */
            getstatic java.lang.Float.TYPE:Ljava/lang/Class;
            if_acmpne 15
        14: .line 315
            aload 1 /* in */
            invokeinterface java.io.ObjectInput.readFloat:()F
            invokestatic java.lang.Float.valueOf:(F)Ljava/lang/Float;
            areturn
        15: .line 316
      StackMap locals:
      StackMap stack:
            aload 0 /* type */
            getstatic java.lang.Double.TYPE:Ljava/lang/Class;
            if_acmpne 17
        16: .line 317
            aload 1 /* in */
            invokeinterface java.io.ObjectInput.readDouble:()D
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            areturn
        17: .line 319
      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 322
      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   19     0  type  Ljava/lang/Class<*>;
            0   19     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 336
            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 338
            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 340
            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 343
            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 344
            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 348
      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 347
            astore 7 /* call */
        start local 7 // java.rmi.server.RemoteCall call
         7: .line 350
            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 351
            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 352
            new java.rmi.MarshalException
            dup
            ldc "error marshaling custom call data"
            invokespecial java.rmi.MarshalException.<init>:(Ljava/lang/String;)V
            athrow
        11: .line 355
      StackMap locals:
      StackMap stack:
            aload 7 /* call */
        12: areturn
        end local 7 // java.rmi.server.RemoteCall call
        13: .line 356
      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 357
            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 358
            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 373
            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 375
            aload 1 /* call */
            invokeinterface java.rmi.server.RemoteCall.executeCall:()V
         2: .line 377
            goto 19
      StackMap locals:
      StackMap stack: java.rmi.RemoteException
         3: astore 2 /* e */
        start local 2 // java.rmi.RemoteException e
         4: .line 381
            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 382
            aload 0 /* this */
            aload 1 /* call */
            iconst_0
            invokevirtual sun.rmi.server.UnicastRef.free:(Ljava/rmi/server/RemoteCall;Z)V
         6: .line 383
            aload 2 /* e */
            athrow
        end local 2 // java.rmi.RemoteException e
         7: .line 385
      StackMap locals:
      StackMap stack: java.lang.Error
            astore 2 /* e */
        start local 2 // java.lang.Error e
         8: .line 389
            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 390
            aload 0 /* this */
            aload 1 /* call */
            iconst_0
            invokevirtual sun.rmi.server.UnicastRef.free:(Ljava/rmi/server/RemoteCall;Z)V
        10: .line 391
            aload 2 /* e */
            athrow
        end local 2 // java.lang.Error e
        11: .line 393
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
            astore 2 /* e */
        start local 2 // java.lang.RuntimeException e
        12: .line 399
            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 400
            aload 0 /* this */
            aload 1 /* call */
            iconst_0
            invokevirtual sun.rmi.server.UnicastRef.free:(Ljava/rmi/server/RemoteCall;Z)V
        14: .line 401
            aload 2 /* e */
            athrow
        end local 2 // java.lang.RuntimeException e
        15: .line 403
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 2 /* e */
        start local 2 // java.lang.Exception e
        16: .line 408
            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 409
            aload 0 /* this */
            aload 1 /* call */
            iconst_1
            invokevirtual sun.rmi.server.UnicastRef.free:(Ljava/rmi/server/RemoteCall;Z)V
        18: .line 411
            aload 2 /* e */
            athrow
        end local 2 // java.lang.Exception e
        19: .line 420
      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 426
            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 427
            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 428
            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 441
            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 444
            aload 0 /* this */
            aload 1 /* call */
            iconst_1
            invokevirtual sun.rmi.server.UnicastRef.free:(Ljava/rmi/server/RemoteCall;Z)V
         2: .line 447
            aload 1 /* call */
            invokeinterface java.rmi.server.RemoteCall.done:()V
         3: .line 448
            goto 5
      StackMap locals:
      StackMap stack: java.io.IOException
         4: pop
         5: .line 455
      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 462
            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 463
            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 464
            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 462
            invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
         4: .line 465
            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 471
            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 478
            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 479
            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 489
            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 490
            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 497
            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 504
            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 510
            aload 1 /* sub */
            instanceof sun.rmi.server.UnicastRef
            ifeq 2
         1: .line 511
            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 512
      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 67
            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