public final class sun.rmi.server.Util
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: sun.rmi.server.Util
  super_class: java.lang.Object
{
  static final int logLevel;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL

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

  private static final boolean ignoreStubClasses;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.util.Map<java.lang.Class<?>, java.lang.Void> withoutStubs;
    descriptor: Ljava/util/Map;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/Class<*>;Ljava/lang/Void;>;

  private static final java.lang.Class[] stubConsParamTypes;
    descriptor: [Ljava/lang/Class;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 71
            new sun.security.action.GetPropertyAction
            dup
            ldc "sun.rmi.server.logLevel"
            invokespecial sun.security.action.GetPropertyAction.<init>:(Ljava/lang/String;)V
         1: .line 70
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.lang.String
         2: .line 69
            invokestatic java.rmi.server.LogStream.parseLevel:(Ljava/lang/String;)I
            putstatic sun.rmi.server.Util.logLevel:I
         3: .line 75
            ldc "sun.rmi.server.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;
         4: .line 74
            putstatic sun.rmi.server.Util.serverRefLog:Lsun/rmi/runtime/Log;
         5: .line 80
            new sun.security.action.GetBooleanAction
            dup
            ldc "java.rmi.server.ignoreStubClasses"
            invokespecial sun.security.action.GetBooleanAction.<init>:(Ljava/lang/String;)V
         6: .line 79
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.lang.Boolean
         7: .line 81
            invokevirtual java.lang.Boolean.booleanValue:()Z
         8: .line 78
            putstatic sun.rmi.server.Util.ignoreStubClasses:Z
         9: .line 85
            new java.util.WeakHashMap
            dup
            bipush 11
            invokespecial java.util.WeakHashMap.<init>:(I)V
            invokestatic java.util.Collections.synchronizedMap:(Ljava/util/Map;)Ljava/util/Map;
        10: .line 84
            putstatic sun.rmi.server.Util.withoutStubs:Ljava/util/Map;
        11: .line 88
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/rmi/server/RemoteRef;
            aastore
            putstatic sun.rmi.server.Util.stubConsParamTypes:[Ljava/lang/Class;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.rmi.server.Util this
         0: .line 90
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 91
            return
        end local 0 // sun.rmi.server.Util this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/rmi/server/Util;

  public static java.rmi.Remote createProxy(java.lang.Class, java.rmi.server.RemoteRef, boolean);
    descriptor: (Ljava/lang/Class;Ljava/rmi/server/RemoteRef;Z)Ljava/rmi/Remote;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=8, args_size=3
        start local 0 // java.lang.Class implClass
        start local 1 // java.rmi.server.RemoteRef clientRef
        start local 2 // boolean forceStubUse
         0: .line 130
            aload 0 /* implClass */
            invokestatic sun.rmi.server.Util.getRemoteClass:(Ljava/lang/Class;)Ljava/lang/Class;
            astore 3 /* remoteClass */
        start local 3 // java.lang.Class remoteClass
         1: .line 131
            goto 8
        end local 3 // java.lang.Class remoteClass
      StackMap locals:
      StackMap stack: java.lang.ClassNotFoundException
         2: pop
         3: .line 132
            new java.rmi.StubNotFoundException
            dup
         4: .line 133
            new java.lang.StringBuilder
            dup
            ldc "object does not implement a remote interface: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         5: .line 134
            aload 0 /* implClass */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         6: .line 133
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         7: .line 132
            invokespecial java.rmi.StubNotFoundException.<init>:(Ljava/lang/String;)V
            athrow
        start local 3 // java.lang.Class remoteClass
         8: .line 137
      StackMap locals: java.lang.Class
      StackMap stack:
            iload 2 /* forceStubUse */
            ifne 10
         9: .line 138
            getstatic sun.rmi.server.Util.ignoreStubClasses:Z
            ifne 11
            aload 3 /* remoteClass */
            invokestatic sun.rmi.server.Util.stubClassExists:(Ljava/lang/Class;)Z
            ifeq 11
        10: .line 140
      StackMap locals:
      StackMap stack:
            aload 3 /* remoteClass */
            aload 1 /* clientRef */
            invokestatic sun.rmi.server.Util.createStub:(Ljava/lang/Class;Ljava/rmi/server/RemoteRef;)Ljava/rmi/server/RemoteStub;
            areturn
        11: .line 143
      StackMap locals:
      StackMap stack:
            aload 0 /* implClass */
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            astore 4 /* loader */
        start local 4 // java.lang.ClassLoader loader
        12: .line 144
            aload 0 /* implClass */
            invokestatic sun.rmi.server.Util.getRemoteInterfaces:(Ljava/lang/Class;)[Ljava/lang/Class;
            astore 5 /* interfaces */
        start local 5 // java.lang.Class[] interfaces
        13: .line 146
            new java.rmi.server.RemoteObjectInvocationHandler
            dup
            aload 1 /* clientRef */
            invokespecial java.rmi.server.RemoteObjectInvocationHandler.<init>:(Ljava/rmi/server/RemoteRef;)V
        14: .line 145
            astore 6 /* handler */
        start local 6 // java.lang.reflect.InvocationHandler handler
        15: .line 151
            aload 4 /* loader */
        16: .line 152
            aload 5 /* interfaces */
        17: .line 153
            aload 6 /* handler */
        18: .line 151
            invokestatic java.lang.reflect.Proxy.newProxyInstance:(Ljava/lang/ClassLoader;[Ljava/lang/Class;Ljava/lang/reflect/InvocationHandler;)Ljava/lang/Object;
            checkcast java.rmi.Remote
        19: areturn
        20: .line 154
      StackMap locals: java.lang.Class java.rmi.server.RemoteRef int java.lang.Class java.lang.ClassLoader java.lang.Class[] java.lang.reflect.InvocationHandler
      StackMap stack: java.lang.IllegalArgumentException
            astore 7 /* e */
        start local 7 // java.lang.IllegalArgumentException e
        21: .line 155
            new java.rmi.StubNotFoundException
            dup
            ldc "unable to create proxy"
            aload 7 /* e */
            invokespecial java.rmi.StubNotFoundException.<init>:(Ljava/lang/String;Ljava/lang/Exception;)V
            athrow
        end local 7 // java.lang.IllegalArgumentException e
        end local 6 // java.lang.reflect.InvocationHandler handler
        end local 5 // java.lang.Class[] interfaces
        end local 4 // java.lang.ClassLoader loader
        end local 3 // java.lang.Class remoteClass
        end local 2 // boolean forceStubUse
        end local 1 // java.rmi.server.RemoteRef clientRef
        end local 0 // java.lang.Class implClass
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   22     0     implClass  Ljava/lang/Class;
            0   22     1     clientRef  Ljava/rmi/server/RemoteRef;
            0   22     2  forceStubUse  Z
            1    2     3   remoteClass  Ljava/lang/Class;
            8   22     3   remoteClass  Ljava/lang/Class;
           12   22     4        loader  Ljava/lang/ClassLoader;
           13   22     5    interfaces  [Ljava/lang/Class;
           15   22     6       handler  Ljava/lang/reflect/InvocationHandler;
           21   22     7             e  Ljava/lang/IllegalArgumentException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.ClassNotFoundException
          15    19      20  Class java.lang.IllegalArgumentException
    Exceptions:
      throws java.rmi.StubNotFoundException
    MethodParameters:
              Name  Flags
      implClass     
      clientRef     
      forceStubUse  

  private static boolean stubClassExists(java.lang.Class);
    descriptor: (Ljava/lang/Class;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.Class remoteClass
         0: .line 166
            getstatic sun.rmi.server.Util.withoutStubs:Ljava/util/Map;
            aload 0 /* remoteClass */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifne 8
         1: .line 168
            new java.lang.StringBuilder
            dup
            aload 0 /* remoteClass */
            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 "_Stub"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         2: .line 169
            iconst_0
         3: .line 170
            aload 0 /* remoteClass */
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
         4: .line 168
            invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
            pop
         5: .line 171
            iconst_1
            ireturn
         6: .line 173
      StackMap locals:
      StackMap stack: java.lang.ClassNotFoundException
            pop
         7: .line 174
            getstatic sun.rmi.server.Util.withoutStubs:Ljava/util/Map;
            aload 0 /* remoteClass */
            aconst_null
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         8: .line 177
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 0 // java.lang.Class remoteClass
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    9     0  remoteClass  Ljava/lang/Class;
      Exception table:
        from    to  target  type
           1     5       6  Class java.lang.ClassNotFoundException
    MethodParameters:
             Name  Flags
      remoteClass  

  private static java.lang.Class getRemoteClass(java.lang.Class);
    descriptor: (Ljava/lang/Class;)Ljava/lang/Class;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // java.lang.Class cl
         0: .line 188
            goto 9
         1: .line 189
      StackMap locals:
      StackMap stack:
            aload 0 /* cl */
            invokevirtual java.lang.Class.getInterfaces:()[Ljava/lang/Class;
            astore 1 /* interfaces */
        start local 1 // java.lang.Class[] interfaces
         2: .line 190
            aload 1 /* interfaces */
            arraylength
            iconst_1
            isub
            istore 2 /* i */
        start local 2 // int i
         3: goto 7
         4: .line 191
      StackMap locals: java.lang.Class[] int
      StackMap stack:
            ldc Ljava/rmi/Remote;
            aload 1 /* interfaces */
            iload 2 /* i */
            aaload
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 6
         5: .line 192
            aload 0 /* cl */
            areturn
         6: .line 190
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ -1
      StackMap locals:
      StackMap stack:
         7: iload 2 /* i */
            ifge 4
        end local 2 // int i
         8: .line 194
            aload 0 /* cl */
            invokevirtual java.lang.Class.getSuperclass:()Ljava/lang/Class;
            astore 0 /* cl */
        end local 1 // java.lang.Class[] interfaces
         9: .line 188
      StackMap locals:
      StackMap stack:
            aload 0 /* cl */
            ifnonnull 1
        10: .line 196
            new java.lang.ClassNotFoundException
            dup
        11: .line 197
            ldc "class does not implement java.rmi.Remote"
        12: .line 196
            invokespecial java.lang.ClassNotFoundException.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // java.lang.Class cl
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   13     0          cl  Ljava/lang/Class;
            2    9     1  interfaces  [Ljava/lang/Class;
            3    8     2           i  I
    Exceptions:
      throws java.lang.ClassNotFoundException
    MethodParameters:
      Name  Flags
      cl    

  private static java.lang.Class[] getRemoteInterfaces(java.lang.Class);
    descriptor: (Ljava/lang/Class;)[Ljava/lang/Class;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.lang.Class remoteClass
         0: .line 210
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 1 /* list */
        start local 1 // java.util.ArrayList list
         1: .line 211
            aload 1 /* list */
            aload 0 /* remoteClass */
            invokestatic sun.rmi.server.Util.getRemoteInterfaces:(Ljava/util/ArrayList;Ljava/lang/Class;)V
         2: .line 212
            aload 1 /* list */
            aload 1 /* list */
            invokevirtual java.util.ArrayList.size:()I
            anewarray java.lang.Class
            invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.Class[]
            areturn
        end local 1 // java.util.ArrayList list
        end local 0 // java.lang.Class remoteClass
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0  remoteClass  Ljava/lang/Class;
            1    3     1         list  Ljava/util/ArrayList<Ljava/lang/Class<*>;>;
    MethodParameters:
             Name  Flags
      remoteClass  

  private static void getRemoteInterfaces(java.util.ArrayList<java.lang.Class<?>>, java.lang.Class);
    descriptor: (Ljava/util/ArrayList;Ljava/lang/Class;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=8, args_size=2
        start local 0 // java.util.ArrayList list
        start local 1 // java.lang.Class cl
         0: .line 224
            aload 1 /* cl */
            invokevirtual java.lang.Class.getSuperclass:()Ljava/lang/Class;
            astore 2 /* superclass */
        start local 2 // java.lang.Class superclass
         1: .line 225
            aload 2 /* superclass */
            ifnull 3
         2: .line 226
            aload 0 /* list */
            aload 2 /* superclass */
            invokestatic sun.rmi.server.Util.getRemoteInterfaces:(Ljava/util/ArrayList;Ljava/lang/Class;)V
         3: .line 229
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 1 /* cl */
            invokevirtual java.lang.Class.getInterfaces:()[Ljava/lang/Class;
            astore 3 /* interfaces */
        start local 3 // java.lang.Class[] interfaces
         4: .line 230
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         5: goto 17
         6: .line 231
      StackMap locals: java.lang.Class[] int
      StackMap stack:
            aload 3 /* interfaces */
            iload 4 /* i */
            aaload
            astore 5 /* intf */
        start local 5 // java.lang.Class intf
         7: .line 237
            ldc Ljava/rmi/Remote;
            aload 5 /* intf */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 16
         8: .line 238
            aload 0 /* list */
            aload 5 /* intf */
            invokevirtual java.util.ArrayList.contains:(Ljava/lang/Object;)Z
            ifne 16
         9: .line 239
            aload 5 /* intf */
            invokevirtual java.lang.Class.getMethods:()[Ljava/lang/reflect/Method;
            astore 6 /* methods */
        start local 6 // java.lang.reflect.Method[] methods
        10: .line 240
            iconst_0
            istore 7 /* j */
        start local 7 // int j
        11: goto 14
        12: .line 241
      StackMap locals: java.lang.Class java.lang.reflect.Method[] int
      StackMap stack:
            aload 6 /* methods */
            iload 7 /* j */
            aaload
            invokestatic sun.rmi.server.Util.checkMethod:(Ljava/lang/reflect/Method;)V
        13: .line 240
            iinc 7 /* j */ 1
      StackMap locals:
      StackMap stack:
        14: iload 7 /* j */
            aload 6 /* methods */
            arraylength
            if_icmplt 12
        end local 7 // int j
        15: .line 243
            aload 0 /* list */
            aload 5 /* intf */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 6 // java.lang.reflect.Method[] methods
        end local 5 // java.lang.Class intf
        16: .line 230
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        17: iload 4 /* i */
            aload 3 /* interfaces */
            arraylength
            if_icmplt 6
        end local 4 // int i
        18: .line 247
            return
        end local 3 // java.lang.Class[] interfaces
        end local 2 // java.lang.Class superclass
        end local 1 // java.lang.Class cl
        end local 0 // java.util.ArrayList list
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   19     0        list  Ljava/util/ArrayList<Ljava/lang/Class<*>;>;
            0   19     1          cl  Ljava/lang/Class;
            1   19     2  superclass  Ljava/lang/Class;
            4   19     3  interfaces  [Ljava/lang/Class;
            5   18     4           i  I
            7   16     5        intf  Ljava/lang/Class;
           10   16     6     methods  [Ljava/lang/reflect/Method;
           11   15     7           j  I
    Signature: (Ljava/util/ArrayList<Ljava/lang/Class<*>;>;Ljava/lang/Class;)V
    MethodParameters:
      Name  Flags
      list  
      cl    

  private static void checkMethod(java.lang.reflect.Method);
    descriptor: (Ljava/lang/reflect/Method;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // java.lang.reflect.Method m
         0: .line 257
            aload 0 /* m */
            invokevirtual java.lang.reflect.Method.getExceptionTypes:()[Ljava/lang/Class;
            astore 1 /* ex */
        start local 1 // java.lang.Class[] ex
         1: .line 258
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 6
         3: .line 259
      StackMap locals: java.lang.Class[] int
      StackMap stack:
            aload 1 /* ex */
            iload 2 /* i */
            aaload
            ldc Ljava/rmi/RemoteException;
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 5
         4: .line 260
            return
         5: .line 258
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 2 /* i */
            aload 1 /* ex */
            arraylength
            if_icmplt 3
        end local 2 // int i
         7: .line 262
            new java.lang.IllegalArgumentException
            dup
         8: .line 263
            new java.lang.StringBuilder
            dup
            ldc "illegal remote method encountered: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* m */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         9: .line 262
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.lang.Class[] ex
        end local 0 // java.lang.reflect.Method m
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0     m  Ljava/lang/reflect/Method;
            1   10     1    ex  [Ljava/lang/Class;
            2    7     2     i  I
    MethodParameters:
      Name  Flags
      m     

  private static java.rmi.server.RemoteStub createStub(java.lang.Class, java.rmi.server.RemoteRef);
    descriptor: (Ljava/lang/Class;Ljava/rmi/server/RemoteRef;)Ljava/rmi/server/RemoteStub;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // java.lang.Class remoteClass
        start local 1 // java.rmi.server.RemoteRef ref
         0: .line 278
            new java.lang.StringBuilder
            dup
            aload 0 /* remoteClass */
            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 "_Stub"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* stubname */
        start local 2 // java.lang.String stubname
         1: .line 287
            aload 2 /* stubname */
            iconst_0
            aload 0 /* remoteClass */
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
         2: .line 286
            astore 3 /* stubcl */
        start local 3 // java.lang.Class stubcl
         3: .line 288
            aload 3 /* stubcl */
            getstatic sun.rmi.server.Util.stubConsParamTypes:[Ljava/lang/Class;
            invokevirtual java.lang.Class.getConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
            astore 4 /* cons */
        start local 4 // java.lang.reflect.Constructor cons
         4: .line 289
            aload 4 /* cons */
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* ref */
            aastore
            invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.rmi.server.RemoteStub
         5: areturn
        end local 4 // java.lang.reflect.Constructor cons
        end local 3 // java.lang.Class stubcl
         6: .line 291
      StackMap locals: java.lang.Class java.rmi.server.RemoteRef java.lang.String
      StackMap stack: java.lang.ClassNotFoundException
            astore 3 /* e */
        start local 3 // java.lang.ClassNotFoundException e
         7: .line 292
            new java.rmi.StubNotFoundException
            dup
         8: .line 293
            new java.lang.StringBuilder
            dup
            ldc "Stub class not found: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* stubname */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 3 /* e */
         9: .line 292
            invokespecial java.rmi.StubNotFoundException.<init>:(Ljava/lang/String;Ljava/lang/Exception;)V
            athrow
        end local 3 // java.lang.ClassNotFoundException e
        10: .line 294
      StackMap locals:
      StackMap stack: java.lang.NoSuchMethodException
            astore 3 /* e */
        start local 3 // java.lang.NoSuchMethodException e
        11: .line 295
            new java.rmi.StubNotFoundException
            dup
        12: .line 296
            new java.lang.StringBuilder
            dup
            ldc "Stub class missing constructor: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* stubname */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 3 /* e */
        13: .line 295
            invokespecial java.rmi.StubNotFoundException.<init>:(Ljava/lang/String;Ljava/lang/Exception;)V
            athrow
        end local 3 // java.lang.NoSuchMethodException e
        14: .line 297
      StackMap locals:
      StackMap stack: java.lang.InstantiationException
            astore 3 /* e */
        start local 3 // java.lang.InstantiationException e
        15: .line 298
            new java.rmi.StubNotFoundException
            dup
        16: .line 299
            new java.lang.StringBuilder
            dup
            ldc "Can't create instance of stub class: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* stubname */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 3 /* e */
        17: .line 298
            invokespecial java.rmi.StubNotFoundException.<init>:(Ljava/lang/String;Ljava/lang/Exception;)V
            athrow
        end local 3 // java.lang.InstantiationException e
        18: .line 300
      StackMap locals:
      StackMap stack: java.lang.IllegalAccessException
            astore 3 /* e */
        start local 3 // java.lang.IllegalAccessException e
        19: .line 301
            new java.rmi.StubNotFoundException
            dup
        20: .line 302
            new java.lang.StringBuilder
            dup
            ldc "Stub class constructor not public: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* stubname */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 3 /* e */
        21: .line 301
            invokespecial java.rmi.StubNotFoundException.<init>:(Ljava/lang/String;Ljava/lang/Exception;)V
            athrow
        end local 3 // java.lang.IllegalAccessException e
        22: .line 303
      StackMap locals:
      StackMap stack: java.lang.reflect.InvocationTargetException
            astore 3 /* e */
        start local 3 // java.lang.reflect.InvocationTargetException e
        23: .line 304
            new java.rmi.StubNotFoundException
            dup
        24: .line 305
            new java.lang.StringBuilder
            dup
            ldc "Exception creating instance of stub class: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* stubname */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 3 /* e */
        25: .line 304
            invokespecial java.rmi.StubNotFoundException.<init>:(Ljava/lang/String;Ljava/lang/Exception;)V
            athrow
        end local 3 // java.lang.reflect.InvocationTargetException e
        26: .line 306
      StackMap locals:
      StackMap stack: java.lang.ClassCastException
            astore 3 /* e */
        start local 3 // java.lang.ClassCastException e
        27: .line 307
            new java.rmi.StubNotFoundException
            dup
        28: .line 308
            new java.lang.StringBuilder
            dup
            ldc "Stub class not instance of RemoteStub: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* stubname */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 3 /* e */
        29: .line 307
            invokespecial java.rmi.StubNotFoundException.<init>:(Ljava/lang/String;Ljava/lang/Exception;)V
            athrow
        end local 3 // java.lang.ClassCastException e
        end local 2 // java.lang.String stubname
        end local 1 // java.rmi.server.RemoteRef ref
        end local 0 // java.lang.Class remoteClass
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   30     0  remoteClass  Ljava/lang/Class;
            0   30     1          ref  Ljava/rmi/server/RemoteRef;
            1   30     2     stubname  Ljava/lang/String;
            3    6     3       stubcl  Ljava/lang/Class<*>;
            4    6     4         cons  Ljava/lang/reflect/Constructor;
            7   10     3            e  Ljava/lang/ClassNotFoundException;
           11   14     3            e  Ljava/lang/NoSuchMethodException;
           15   18     3            e  Ljava/lang/InstantiationException;
           19   22     3            e  Ljava/lang/IllegalAccessException;
           23   26     3            e  Ljava/lang/reflect/InvocationTargetException;
           27   30     3            e  Ljava/lang/ClassCastException;
      Exception table:
        from    to  target  type
           1     5       6  Class java.lang.ClassNotFoundException
           1     5      10  Class java.lang.NoSuchMethodException
           1     5      14  Class java.lang.InstantiationException
           1     5      18  Class java.lang.IllegalAccessException
           1     5      22  Class java.lang.reflect.InvocationTargetException
           1     5      26  Class java.lang.ClassCastException
    Exceptions:
      throws java.rmi.StubNotFoundException
    MethodParameters:
             Name  Flags
      remoteClass  
      ref          

  static java.rmi.server.Skeleton createSkeleton(java.rmi.Remote);
    descriptor: (Ljava/rmi/Remote;)Ljava/rmi/server/Skeleton;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=4, args_size=1
        start local 0 // java.rmi.Remote object
         0: .line 320
            aload 0 /* object */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokestatic sun.rmi.server.Util.getRemoteClass:(Ljava/lang/Class;)Ljava/lang/Class;
            astore 1 /* cl */
        start local 1 // java.lang.Class cl
         1: .line 321
            goto 8
        end local 1 // java.lang.Class cl
      StackMap locals:
      StackMap stack: java.lang.ClassNotFoundException
         2: pop
         3: .line 322
            new java.rmi.server.SkeletonNotFoundException
            dup
         4: .line 323
            new java.lang.StringBuilder
            dup
            ldc "object does not implement a remote interface: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         5: .line 324
            aload 0 /* object */
            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;
         6: .line 323
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         7: .line 322
            invokespecial java.rmi.server.SkeletonNotFoundException.<init>:(Ljava/lang/String;)V
            athrow
        start local 1 // java.lang.Class cl
         8: .line 328
      StackMap locals: java.lang.Class
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 1 /* cl */
            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 "_Skel"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* skelname */
        start local 2 // java.lang.String skelname
         9: .line 330
            aload 2 /* skelname */
            iconst_0
            aload 1 /* cl */
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
            astore 3 /* skelcl */
        start local 3 // java.lang.Class skelcl
        10: .line 332
            aload 3 /* skelcl */
            invokevirtual java.lang.Class.newInstance:()Ljava/lang/Object;
            checkcast java.rmi.server.Skeleton
        11: areturn
        end local 3 // java.lang.Class skelcl
        12: .line 333
      StackMap locals: java.rmi.Remote java.lang.Class java.lang.String
      StackMap stack: java.lang.ClassNotFoundException
            astore 3 /* ex */
        start local 3 // java.lang.ClassNotFoundException ex
        13: .line 334
            new java.rmi.server.SkeletonNotFoundException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Skeleton class not found: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        14: .line 335
            aload 2 /* skelname */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 3 /* ex */
        15: .line 334
            invokespecial java.rmi.server.SkeletonNotFoundException.<init>:(Ljava/lang/String;Ljava/lang/Exception;)V
            athrow
        end local 3 // java.lang.ClassNotFoundException ex
        16: .line 336
      StackMap locals:
      StackMap stack: java.lang.InstantiationException
            astore 3 /* ex */
        start local 3 // java.lang.InstantiationException ex
        17: .line 337
            new java.rmi.server.SkeletonNotFoundException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Can't create skeleton: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        18: .line 338
            aload 2 /* skelname */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 3 /* ex */
        19: .line 337
            invokespecial java.rmi.server.SkeletonNotFoundException.<init>:(Ljava/lang/String;Ljava/lang/Exception;)V
            athrow
        end local 3 // java.lang.InstantiationException ex
        20: .line 339
      StackMap locals:
      StackMap stack: java.lang.IllegalAccessException
            astore 3 /* ex */
        start local 3 // java.lang.IllegalAccessException ex
        21: .line 340
            new java.rmi.server.SkeletonNotFoundException
            dup
            new java.lang.StringBuilder
            dup
            ldc "No public constructor: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        22: .line 341
            aload 2 /* skelname */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 3 /* ex */
        23: .line 340
            invokespecial java.rmi.server.SkeletonNotFoundException.<init>:(Ljava/lang/String;Ljava/lang/Exception;)V
            athrow
        end local 3 // java.lang.IllegalAccessException ex
        24: .line 342
      StackMap locals:
      StackMap stack: java.lang.ClassCastException
            astore 3 /* ex */
        start local 3 // java.lang.ClassCastException ex
        25: .line 343
            new java.rmi.server.SkeletonNotFoundException
            dup
        26: .line 344
            new java.lang.StringBuilder
            dup
            ldc "Skeleton not of correct class: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* skelname */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 3 /* ex */
        27: .line 343
            invokespecial java.rmi.server.SkeletonNotFoundException.<init>:(Ljava/lang/String;Ljava/lang/Exception;)V
            athrow
        end local 3 // java.lang.ClassCastException ex
        end local 2 // java.lang.String skelname
        end local 1 // java.lang.Class cl
        end local 0 // java.rmi.Remote object
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   28     0    object  Ljava/rmi/Remote;
            1    2     1        cl  Ljava/lang/Class;
            8   28     1        cl  Ljava/lang/Class;
            9   28     2  skelname  Ljava/lang/String;
           10   12     3    skelcl  Ljava/lang/Class;
           13   16     3        ex  Ljava/lang/ClassNotFoundException;
           17   20     3        ex  Ljava/lang/InstantiationException;
           21   24     3        ex  Ljava/lang/IllegalAccessException;
           25   28     3        ex  Ljava/lang/ClassCastException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.ClassNotFoundException
           9    11      12  Class java.lang.ClassNotFoundException
           9    11      16  Class java.lang.InstantiationException
           9    11      20  Class java.lang.IllegalAccessException
           9    11      24  Class java.lang.ClassCastException
    Exceptions:
      throws java.rmi.server.SkeletonNotFoundException
    MethodParameters:
        Name  Flags
      object  

  public static long computeMethodHash(java.lang.reflect.Method);
    descriptor: (Ljava/lang/reflect/Method;)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=9, args_size=1
        start local 0 // java.lang.reflect.Method m
         0: .line 354
            lconst_0
            lstore 1 /* hash */
        start local 1 // long hash
         1: .line 355
            new java.io.ByteArrayOutputStream
            dup
            bipush 127
            invokespecial java.io.ByteArrayOutputStream.<init>:(I)V
            astore 3 /* sink */
        start local 3 // java.io.ByteArrayOutputStream sink
         2: .line 357
            ldc "SHA"
            invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;)Ljava/security/MessageDigest;
            astore 4 /* md */
        start local 4 // java.security.MessageDigest md
         3: .line 358
            new java.io.DataOutputStream
            dup
         4: .line 359
            new java.security.DigestOutputStream
            dup
            aload 3 /* sink */
            aload 4 /* md */
            invokespecial java.security.DigestOutputStream.<init>:(Ljava/io/OutputStream;Ljava/security/MessageDigest;)V
         5: .line 358
            invokespecial java.io.DataOutputStream.<init>:(Ljava/io/OutputStream;)V
            astore 5 /* out */
        start local 5 // java.io.DataOutputStream out
         6: .line 361
            aload 0 /* m */
            invokestatic sun.rmi.server.Util.getMethodNameAndDescriptor:(Ljava/lang/reflect/Method;)Ljava/lang/String;
            astore 6 /* s */
        start local 6 // java.lang.String s
         7: .line 362
            getstatic sun.rmi.server.Util.serverRefLog: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 11
         8: .line 363
            getstatic sun.rmi.server.Util.serverRefLog:Lsun/rmi/runtime/Log;
            getstatic sun.rmi.runtime.Log.VERBOSE:Ljava/util/logging/Level;
         9: .line 364
            new java.lang.StringBuilder
            dup
            ldc "string used for method hash: \""
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* s */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        10: .line 363
            invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
        11: .line 366
      StackMap locals: java.lang.reflect.Method long java.io.ByteArrayOutputStream java.security.MessageDigest java.io.DataOutputStream java.lang.String
      StackMap stack:
            aload 5 /* out */
            aload 6 /* s */
            invokevirtual java.io.DataOutputStream.writeUTF:(Ljava/lang/String;)V
        12: .line 369
            aload 5 /* out */
            invokevirtual java.io.DataOutputStream.flush:()V
        13: .line 370
            aload 4 /* md */
            invokevirtual java.security.MessageDigest.digest:()[B
            astore 7 /* hasharray */
        start local 7 // byte[] hasharray
        14: .line 371
            iconst_0
            istore 8 /* i */
        start local 8 // int i
        15: goto 18
        16: .line 372
      StackMap locals: byte[] int
      StackMap stack:
            lload 1 /* hash */
            aload 7 /* hasharray */
            iload 8 /* i */
            baload
            sipush 255
            iand
            i2l
            iload 8 /* i */
            bipush 8
            imul
            lshl
            ladd
            lstore 1 /* hash */
        17: .line 371
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        18: iload 8 /* i */
            bipush 8
            aload 7 /* hasharray */
            arraylength
            invokestatic java.lang.Math.min:(II)I
            if_icmplt 16
        end local 8 // int i
        end local 7 // byte[] hasharray
        end local 6 // java.lang.String s
        end local 5 // java.io.DataOutputStream out
        end local 4 // java.security.MessageDigest md
        19: .line 374
            goto 24
      StackMap locals: java.lang.reflect.Method long java.io.ByteArrayOutputStream
      StackMap stack: java.io.IOException
        20: pop
        21: .line 376
            ldc -1
            lstore 1 /* hash */
            goto 24
        22: .line 377
      StackMap locals:
      StackMap stack: java.security.NoSuchAlgorithmException
            astore 4 /* complain */
        start local 4 // java.security.NoSuchAlgorithmException complain
        23: .line 378
            new java.lang.SecurityException
            dup
            aload 4 /* complain */
            invokevirtual java.security.NoSuchAlgorithmException.getMessage:()Ljava/lang/String;
            invokespecial java.lang.SecurityException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // java.security.NoSuchAlgorithmException complain
        24: .line 380
      StackMap locals:
      StackMap stack:
            lload 1 /* hash */
            lreturn
        end local 3 // java.io.ByteArrayOutputStream sink
        end local 1 // long hash
        end local 0 // java.lang.reflect.Method m
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   25     0          m  Ljava/lang/reflect/Method;
            1   25     1       hash  J
            2   25     3       sink  Ljava/io/ByteArrayOutputStream;
            3   19     4         md  Ljava/security/MessageDigest;
            6   19     5        out  Ljava/io/DataOutputStream;
            7   19     6          s  Ljava/lang/String;
           14   19     7  hasharray  [B
           15   19     8          i  I
           23   24     4   complain  Ljava/security/NoSuchAlgorithmException;
      Exception table:
        from    to  target  type
           2    19      20  Class java.io.IOException
           2    19      22  Class java.security.NoSuchAlgorithmException
    MethodParameters:
      Name  Flags
      m     

  private static java.lang.String getMethodNameAndDescriptor(java.lang.reflect.Method);
    descriptor: (Ljava/lang/reflect/Method;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // java.lang.reflect.Method m
         0: .line 392
            new java.lang.StringBuffer
            dup
            aload 0 /* m */
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            invokespecial java.lang.StringBuffer.<init>:(Ljava/lang/String;)V
            astore 1 /* desc */
        start local 1 // java.lang.StringBuffer desc
         1: .line 393
            aload 1 /* desc */
            bipush 40
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
         2: .line 394
            aload 0 /* m */
            invokevirtual java.lang.reflect.Method.getParameterTypes:()[Ljava/lang/Class;
            astore 2 /* paramTypes */
        start local 2 // java.lang.Class[] paramTypes
         3: .line 395
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         4: goto 7
         5: .line 396
      StackMap locals: java.lang.StringBuffer java.lang.Class[] int
      StackMap stack:
            aload 1 /* desc */
            aload 2 /* paramTypes */
            iload 3 /* i */
            aaload
            invokestatic sun.rmi.server.Util.getTypeDescriptor:(Ljava/lang/Class;)Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
         6: .line 395
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 3 /* i */
            aload 2 /* paramTypes */
            arraylength
            if_icmplt 5
        end local 3 // int i
         8: .line 398
            aload 1 /* desc */
            bipush 41
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
         9: .line 399
            aload 0 /* m */
            invokevirtual java.lang.reflect.Method.getReturnType:()Ljava/lang/Class;
            astore 3 /* returnType */
        start local 3 // java.lang.Class returnType
        10: .line 400
            aload 3 /* returnType */
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            if_acmpne 13
        11: .line 401
            aload 1 /* desc */
            bipush 86
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
        12: .line 402
            goto 14
        13: .line 403
      StackMap locals: java.lang.reflect.Method java.lang.StringBuffer java.lang.Class[] java.lang.Class
      StackMap stack:
            aload 1 /* desc */
            aload 3 /* returnType */
            invokestatic sun.rmi.server.Util.getTypeDescriptor:(Ljava/lang/Class;)Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        14: .line 405
      StackMap locals:
      StackMap stack:
            aload 1 /* desc */
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
            areturn
        end local 3 // java.lang.Class returnType
        end local 2 // java.lang.Class[] paramTypes
        end local 1 // java.lang.StringBuffer desc
        end local 0 // java.lang.reflect.Method m
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   15     0           m  Ljava/lang/reflect/Method;
            1   15     1        desc  Ljava/lang/StringBuffer;
            3   15     2  paramTypes  [Ljava/lang/Class;
            4    8     3           i  I
           10   15     3  returnType  Ljava/lang/Class;
    MethodParameters:
      Name  Flags
      m     

  private static java.lang.String getTypeDescriptor(java.lang.Class);
    descriptor: (Ljava/lang/Class;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // java.lang.Class type
         0: .line 413
            aload 0 /* type */
            invokevirtual java.lang.Class.isPrimitive:()Z
            ifeq 20
         1: .line 414
            aload 0 /* type */
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            if_acmpne 3
         2: .line 415
            ldc "I"
            areturn
         3: .line 416
      StackMap locals:
      StackMap stack:
            aload 0 /* type */
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            if_acmpne 5
         4: .line 417
            ldc "Z"
            areturn
         5: .line 418
      StackMap locals:
      StackMap stack:
            aload 0 /* type */
            getstatic java.lang.Byte.TYPE:Ljava/lang/Class;
            if_acmpne 7
         6: .line 419
            ldc "B"
            areturn
         7: .line 420
      StackMap locals:
      StackMap stack:
            aload 0 /* type */
            getstatic java.lang.Character.TYPE:Ljava/lang/Class;
            if_acmpne 9
         8: .line 421
            ldc "C"
            areturn
         9: .line 422
      StackMap locals:
      StackMap stack:
            aload 0 /* type */
            getstatic java.lang.Short.TYPE:Ljava/lang/Class;
            if_acmpne 11
        10: .line 423
            ldc "S"
            areturn
        11: .line 424
      StackMap locals:
      StackMap stack:
            aload 0 /* type */
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            if_acmpne 13
        12: .line 425
            ldc "J"
            areturn
        13: .line 426
      StackMap locals:
      StackMap stack:
            aload 0 /* type */
            getstatic java.lang.Float.TYPE:Ljava/lang/Class;
            if_acmpne 15
        14: .line 427
            ldc "F"
            areturn
        15: .line 428
      StackMap locals:
      StackMap stack:
            aload 0 /* type */
            getstatic java.lang.Double.TYPE:Ljava/lang/Class;
            if_acmpne 17
        16: .line 429
            ldc "D"
            areturn
        17: .line 430
      StackMap locals:
      StackMap stack:
            aload 0 /* type */
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            if_acmpne 19
        18: .line 431
            ldc "V"
            areturn
        19: .line 433
      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
        20: .line 435
      StackMap locals:
      StackMap stack:
            aload 0 /* type */
            invokevirtual java.lang.Class.isArray:()Z
            ifeq 22
        21: .line 443
            aload 0 /* type */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            bipush 46
            bipush 47
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            areturn
        22: .line 445
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "L"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* type */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            bipush 46
            bipush 47
            invokevirtual java.lang.String.replace:(CC)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;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // java.lang.Class type
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   23     0  type  Ljava/lang/Class;
    MethodParameters:
      Name  Flags
      type  

  public static java.lang.String getUnqualifiedName(java.lang.Class);
    descriptor: (Ljava/lang/Class;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.lang.Class c
         0: .line 458
            aload 0 /* c */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            astore 1 /* binaryName */
        start local 1 // java.lang.String binaryName
         1: .line 459
            aload 1 /* binaryName */
            aload 1 /* binaryName */
            bipush 46
            invokevirtual java.lang.String.lastIndexOf:(I)I
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            areturn
        end local 1 // java.lang.String binaryName
        end local 0 // java.lang.Class c
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0           c  Ljava/lang/Class;
            1    2     1  binaryName  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      c     
}
SourceFile: "Util.java"