public final class com.oracle.svm.reflect.proxy.hosted.DynamicProxyFeature implements org.graalvm.nativeimage.hosted.Feature
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.oracle.svm.reflect.proxy.hosted.DynamicProxyFeature
  super_class: java.lang.Object
{
  private int loadedConfigurations;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.reflect.proxy.hosted.DynamicProxyFeature this
         0: .line 47
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // com.oracle.svm.reflect.proxy.hosted.DynamicProxyFeature this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/reflect/proxy/hosted/DynamicProxyFeature;

  public java.util.List<java.lang.Class<? extends org.graalvm.nativeimage.hosted.Feature>> getRequiredFeatures();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.reflect.proxy.hosted.DynamicProxyFeature this
         0: .line 52
            ldc Lcom/oracle/svm/reflect/hosted/ReflectionFeature;
            invokestatic java.util.Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;
            areturn
        end local 0 // com.oracle.svm.reflect.proxy.hosted.DynamicProxyFeature this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/reflect/proxy/hosted/DynamicProxyFeature;
    Signature: ()Ljava/util/List<Ljava/lang/Class<+Lorg/graalvm/nativeimage/hosted/Feature;>;>;

  public void duringSetup(org.graalvm.nativeimage.hosted.Feature$DuringSetupAccess);
    descriptor: (Lorg/graalvm/nativeimage/hosted/Feature$DuringSetupAccess;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=7, args_size=2
        start local 0 // com.oracle.svm.reflect.proxy.hosted.DynamicProxyFeature this
        start local 1 // org.graalvm.nativeimage.hosted.Feature$DuringSetupAccess a
         0: .line 57
            aload 1 /* a */
            checkcast com.oracle.svm.hosted.FeatureImpl$DuringSetupAccessImpl
            astore 2 /* access */
        start local 2 // com.oracle.svm.hosted.FeatureImpl$DuringSetupAccessImpl access
         1: .line 59
            aload 2 /* access */
            invokevirtual com.oracle.svm.hosted.FeatureImpl$DuringSetupAccessImpl.getImageClassLoader:()Lcom/oracle/svm/hosted/ImageClassLoader;
            astore 3 /* imageClassLoader */
        start local 3 // com.oracle.svm.hosted.ImageClassLoader imageClassLoader
         2: .line 60
            new com.oracle.svm.reflect.proxy.DynamicProxySupport
            dup
            aload 3 /* imageClassLoader */
            invokevirtual com.oracle.svm.hosted.ImageClassLoader.getClassLoader:()Ljava/lang/ClassLoader;
            invokespecial com.oracle.svm.reflect.proxy.DynamicProxySupport.<init>:(Ljava/lang/ClassLoader;)V
            astore 4 /* dynamicProxySupport */
        start local 4 // com.oracle.svm.reflect.proxy.DynamicProxySupport dynamicProxySupport
         3: .line 61
            ldc Lcom/oracle/svm/core/jdk/proxy/DynamicProxyRegistry;
            aload 4 /* dynamicProxySupport */
            invokestatic org.graalvm.nativeimage.ImageSingletons.add:(Ljava/lang/Class;Ljava/lang/Object;)V
         4: .line 63
            aload 3 /* imageClassLoader */
            aload 4 /* dynamicProxySupport */
            invokedynamic accept(Lcom/oracle/svm/hosted/ImageClassLoader;Lcom/oracle/svm/reflect/proxy/DynamicProxySupport;)Ljava/util/function/Consumer;
              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;)V
                  com/oracle/svm/reflect/proxy/hosted/DynamicProxyFeature.lambda$0(Lcom/oracle/svm/hosted/ImageClassLoader;Lcom/oracle/svm/reflect/proxy/DynamicProxySupport;[Ljava/lang/String;)V (6)
                  ([Ljava/lang/String;)V
            astore 5 /* adapter */
        start local 5 // java.util.function.Consumer adapter
         5: .line 79
            new com.oracle.svm.core.configure.ProxyConfigurationParser
            dup
            aload 5 /* adapter */
            invokespecial com.oracle.svm.core.configure.ProxyConfigurationParser.<init>:(Ljava/util/function/Consumer;)V
            astore 6 /* parser */
        start local 6 // com.oracle.svm.core.configure.ProxyConfigurationParser parser
         6: .line 80
            aload 0 /* this */
            aload 6 /* parser */
            aload 3 /* imageClassLoader */
            ldc "dynamic proxy"
         7: .line 81
            getstatic com.oracle.svm.core.configure.ConfigurationFiles$Options.DynamicProxyConfigurationFiles:Lcom/oracle/svm/core/option/HostedOptionKey;
            getstatic com.oracle.svm.core.configure.ConfigurationFiles$Options.DynamicProxyConfigurationResources:Lcom/oracle/svm/core/option/HostedOptionKey;
         8: .line 82
            ldc "proxy-config.json"
         9: .line 80
            invokestatic com.oracle.svm.hosted.config.ConfigurationParserUtils.parseAndRegisterConfigurations:(Lcom/oracle/svm/core/configure/ConfigurationParser;Lcom/oracle/svm/hosted/ImageClassLoader;Ljava/lang/String;Lcom/oracle/svm/core/option/HostedOptionKey;Lcom/oracle/svm/core/option/HostedOptionKey;Ljava/lang/String;)I
            putfield com.oracle.svm.reflect.proxy.hosted.DynamicProxyFeature.loadedConfigurations:I
        10: .line 83
            return
        end local 6 // com.oracle.svm.core.configure.ProxyConfigurationParser parser
        end local 5 // java.util.function.Consumer adapter
        end local 4 // com.oracle.svm.reflect.proxy.DynamicProxySupport dynamicProxySupport
        end local 3 // com.oracle.svm.hosted.ImageClassLoader imageClassLoader
        end local 2 // com.oracle.svm.hosted.FeatureImpl$DuringSetupAccessImpl access
        end local 1 // org.graalvm.nativeimage.hosted.Feature$DuringSetupAccess a
        end local 0 // com.oracle.svm.reflect.proxy.hosted.DynamicProxyFeature this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   11     0                 this  Lcom/oracle/svm/reflect/proxy/hosted/DynamicProxyFeature;
            0   11     1                    a  Lorg/graalvm/nativeimage/hosted/Feature$DuringSetupAccess;
            1   11     2               access  Lcom/oracle/svm/hosted/FeatureImpl$DuringSetupAccessImpl;
            2   11     3     imageClassLoader  Lcom/oracle/svm/hosted/ImageClassLoader;
            3   11     4  dynamicProxySupport  Lcom/oracle/svm/reflect/proxy/DynamicProxySupport;
            5   11     5              adapter  Ljava/util/function/Consumer<[Ljava/lang/String;>;
            6   11     6               parser  Lcom/oracle/svm/core/configure/ProxyConfigurationParser;
    MethodParameters:
      Name  Flags
      a     

  public void beforeCompilation(org.graalvm.nativeimage.hosted.Feature$BeforeCompilationAccess);
    descriptor: (Lorg/graalvm/nativeimage/hosted/Feature$BeforeCompilationAccess;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=2
        start local 0 // com.oracle.svm.reflect.proxy.hosted.DynamicProxyFeature this
        start local 1 // org.graalvm.nativeimage.hosted.Feature$BeforeCompilationAccess access
         0: .line 87
            ldc Lcom/oracle/svm/hosted/FallbackFeature;
            invokestatic org.graalvm.nativeimage.ImageSingletons.contains:(Ljava/lang/Class;)Z
            ifne 2
         1: .line 88
            return
         2: .line 90
      StackMap locals:
      StackMap stack:
            ldc Lcom/oracle/svm/hosted/FallbackFeature;
            invokestatic org.graalvm.nativeimage.ImageSingletons.lookup:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast com.oracle.svm.hosted.FallbackFeature
            getfield com.oracle.svm.hosted.FallbackFeature.proxyFallback:Lcom/oracle/svm/hosted/FallbackFeature$FallbackImageRequest;
            astore 2 /* proxyFallback */
        start local 2 // com.oracle.svm.hosted.FallbackFeature$FallbackImageRequest proxyFallback
         3: .line 91
            aload 2 /* proxyFallback */
            ifnull 5
            aload 0 /* this */
            getfield com.oracle.svm.reflect.proxy.hosted.DynamicProxyFeature.loadedConfigurations:I
            ifne 5
         4: .line 92
            aload 2 /* proxyFallback */
            athrow
         5: .line 94
      StackMap locals: com.oracle.svm.hosted.FallbackFeature$FallbackImageRequest
      StackMap stack:
            return
        end local 2 // com.oracle.svm.hosted.FallbackFeature$FallbackImageRequest proxyFallback
        end local 1 // org.graalvm.nativeimage.hosted.Feature$BeforeCompilationAccess access
        end local 0 // com.oracle.svm.reflect.proxy.hosted.DynamicProxyFeature this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    6     0           this  Lcom/oracle/svm/reflect/proxy/hosted/DynamicProxyFeature;
            0    6     1         access  Lorg/graalvm/nativeimage/hosted/Feature$BeforeCompilationAccess;
            3    6     2  proxyFallback  Lcom/oracle/svm/hosted/FallbackFeature$FallbackImageRequest;
    MethodParameters:
        Name  Flags
      access  

  private static void lambda$0(com.oracle.svm.hosted.ImageClassLoader, com.oracle.svm.reflect.proxy.DynamicProxySupport, java.lang.String[]);
    descriptor: (Lcom/oracle/svm/hosted/ImageClassLoader;Lcom/oracle/svm/reflect/proxy/DynamicProxySupport;[Ljava/lang/String;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=7, args_size=3
        start local 2 // java.lang.String[] interfaceNames
         0: .line 64
            aload 2 /* interfaceNames */
            arraylength
            anewarray java.lang.Class
            astore 3 /* interfaces */
        start local 3 // java.lang.Class[] interfaces
         1: .line 65
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         2: goto 11
         3: .line 66
      StackMap locals: java.lang.Class[] int
      StackMap stack:
            aload 2 /* interfaceNames */
            iload 4 /* i */
            aaload
            astore 5 /* className */
        start local 5 // java.lang.String className
         4: .line 67
            aload 0
            aload 5 /* className */
            invokevirtual com.oracle.svm.hosted.ImageClassLoader.findClass:(Ljava/lang/String;)Lcom/oracle/svm/core/TypeResult;
            invokevirtual com.oracle.svm.core.TypeResult.get:()Ljava/lang/Object;
            checkcast java.lang.Class
            astore 6 /* clazz */
        start local 6 // java.lang.Class clazz
         5: .line 68
            aload 6 /* clazz */
            ifnonnull 7
         6: .line 69
            new java.lang.StringBuilder
            dup
            ldc "Class "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* className */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " not found"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            iconst_0
            anewarray java.lang.Object
            invokestatic com.oracle.svm.core.util.UserError.abort:(Ljava/lang/String;[Ljava/lang/Object;)Lcom/oracle/svm/core/util/UserError$UserException;
            athrow
         7: .line 71
      StackMap locals: java.lang.String java.lang.Class
      StackMap stack:
            aload 6 /* clazz */
            invokevirtual java.lang.Class.isInterface:()Z
            ifne 9
         8: .line 72
            new java.lang.StringBuilder
            dup
            ldc "The class \""
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* className */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\" is not an interface."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            iconst_0
            anewarray java.lang.Object
            invokestatic com.oracle.svm.core.util.UserError.abort:(Ljava/lang/String;[Ljava/lang/Object;)Lcom/oracle/svm/core/util/UserError$UserException;
            athrow
         9: .line 74
      StackMap locals:
      StackMap stack:
            aload 3 /* interfaces */
            iload 4 /* i */
            aload 6 /* clazz */
            aastore
        end local 6 // java.lang.Class clazz
        end local 5 // java.lang.String className
        10: .line 65
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 4 /* i */
            aload 2 /* interfaceNames */
            arraylength
            if_icmplt 3
        end local 4 // int i
        12: .line 77
            aload 1
            aload 3 /* interfaces */
            invokevirtual com.oracle.svm.reflect.proxy.DynamicProxySupport.addProxyClass:([Ljava/lang/Class;)V
        end local 3 // java.lang.Class[] interfaces
        13: .line 78
            return
        end local 2 // java.lang.String[] interfaceNames
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   14     2  interfaceNames  [Ljava/lang/String;
            1   13     3      interfaces  [Ljava/lang/Class;
            2   12     4               i  I
            4   10     5       className  Ljava/lang/String;
            5   10     6           clazz  Ljava/lang/Class<*>;
}
SourceFile: "DynamicProxyFeature.java"
InnerClasses:
  public final Options = com.oracle.svm.core.configure.ConfigurationFiles$Options of com.oracle.svm.core.configure.ConfigurationFiles
  public UserException = com.oracle.svm.core.util.UserError$UserException of com.oracle.svm.core.util.UserError
  public DuringSetupAccessImpl = com.oracle.svm.hosted.FeatureImpl$DuringSetupAccessImpl of com.oracle.svm.hosted.FeatureImpl
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public abstract BeforeCompilationAccess = org.graalvm.nativeimage.hosted.Feature$BeforeCompilationAccess of org.graalvm.nativeimage.hosted.Feature
  public abstract DuringSetupAccess = org.graalvm.nativeimage.hosted.Feature$DuringSetupAccess of org.graalvm.nativeimage.hosted.Feature
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.AutomaticFeature()