final class com.oracle.svm.reflect.serialize.hosted.SerializationBuilder
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.oracle.svm.reflect.serialize.hosted.SerializationBuilder
  super_class: java.lang.Object
{
  private final com.oracle.svm.reflect.serialize.hosted.SerializationBuilder$SerializationChecksumClassLoader serializationChecksumClassLoader;
    descriptor: Lcom/oracle/svm/reflect/serialize/hosted/SerializationBuilder$SerializationChecksumClassLoader;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.oracle.svm.reflect.serialize.hosted.SerializationBuilder$ChecksumCalculator checksumCalculator;
    descriptor: Lcom/oracle/svm/reflect/serialize/hosted/SerializationBuilder$ChecksumCalculator;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.oracle.svm.hosted.FeatureImpl$BeforeAnalysisAccessImpl access;
    descriptor: Lcom/oracle/svm/hosted/FeatureImpl$BeforeAnalysisAccessImpl;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.Object reflectionFactory;
    descriptor: Ljava/lang/Object;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.reflect.Method newConstructorForSerializationMethod;
    descriptor: Ljava/lang/reflect/Method;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.reflect.Method getConstructorAccessorMethod;
    descriptor: Ljava/lang/reflect/Method;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.reflect.Method getExternalizableConstructorMethod;
    descriptor: Ljava/lang/reflect/Method;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.reflect.Constructor<?> stubConstructor;
    descriptor: Ljava/lang/reflect/Constructor;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/lang/reflect/Constructor<*>;

  private final com.oracle.svm.reflect.serialize.SerializationSupport serializationSupport;
    descriptor: Lcom/oracle/svm/reflect/serialize/SerializationSupport;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  void <init>(com.oracle.svm.hosted.FeatureImpl$BeforeAnalysisAccessImpl);
    descriptor: (Lcom/oracle/svm/hosted/FeatureImpl$BeforeAnalysisAccessImpl;)V
    flags: (0x0000) 
    Code:
      stack=7, locals=4, args_size=2
        start local 0 // com.oracle.svm.reflect.serialize.hosted.SerializationBuilder this
        start local 1 // com.oracle.svm.hosted.FeatureImpl$BeforeAnalysisAccessImpl access
         0: .line 270
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 272
            aload 1 /* access */
            new java.lang.StringBuilder
            dup
            invokestatic com.oracle.svm.core.jdk.Package_jdk_internal_reflect.getQualifiedName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".ReflectionFactory"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.oracle.svm.hosted.FeatureImpl$BeforeAnalysisAccessImpl.findClassByName:(Ljava/lang/String;)Ljava/lang/Class;
            astore 2 /* reflectionFactoryClass */
        start local 2 // java.lang.Class reflectionFactoryClass
         2: .line 273
            aload 2 /* reflectionFactoryClass */
            ldc "getReflectionFactory"
            iconst_0
            anewarray java.lang.Class
            invokestatic com.oracle.svm.util.ReflectionUtil.lookupMethod:(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            astore 3 /* getReflectionFactoryMethod */
        start local 3 // java.lang.reflect.Method getReflectionFactoryMethod
         3: .line 274
            aload 0 /* this */
            aload 3 /* getReflectionFactoryMethod */
            aconst_null
            iconst_0
            anewarray java.lang.Object
            invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            putfield com.oracle.svm.reflect.serialize.hosted.SerializationBuilder.reflectionFactory:Ljava/lang/Object;
         4: .line 275
            aload 0 /* this */
            aload 2 /* reflectionFactoryClass */
            ldc "newConstructorForSerialization"
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/Class;
            aastore
            invokestatic com.oracle.svm.util.ReflectionUtil.lookupMethod:(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            putfield com.oracle.svm.reflect.serialize.hosted.SerializationBuilder.newConstructorForSerializationMethod:Ljava/lang/reflect/Method;
         5: .line 276
            aload 0 /* this */
            ldc Ljava/lang/reflect/Constructor;
            ldc "getConstructorAccessor"
            iconst_0
            anewarray java.lang.Class
            invokestatic com.oracle.svm.util.ReflectionUtil.lookupMethod:(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            putfield com.oracle.svm.reflect.serialize.hosted.SerializationBuilder.getConstructorAccessorMethod:Ljava/lang/reflect/Method;
         6: .line 277
            aload 0 /* this */
            ldc Ljava/io/ObjectStreamClass;
            ldc "getExternalizableConstructor"
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/Class;
            aastore
            invokestatic com.oracle.svm.util.ReflectionUtil.lookupMethod:(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            putfield com.oracle.svm.reflect.serialize.hosted.SerializationBuilder.getExternalizableConstructorMethod:Ljava/lang/reflect/Method;
        end local 3 // java.lang.reflect.Method getReflectionFactoryMethod
        end local 2 // java.lang.Class reflectionFactoryClass
         7: .line 278
            goto 10
      StackMap locals: com.oracle.svm.reflect.serialize.hosted.SerializationBuilder com.oracle.svm.hosted.FeatureImpl$BeforeAnalysisAccessImpl
      StackMap stack: java.lang.ReflectiveOperationException
         8: astore 2 /* e */
        start local 2 // java.lang.ReflectiveOperationException e
         9: .line 279
            aload 2 /* e */
            invokestatic com.oracle.svm.core.util.VMError.shouldNotReachHere:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 2 // java.lang.ReflectiveOperationException e
        10: .line 281
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            ldc Lcom/oracle/svm/reflect/serialize/SerializationSupport$StubForAbstractClass;
            invokevirtual com.oracle.svm.reflect.serialize.hosted.SerializationBuilder.newConstructorForSerialization:(Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
            putfield com.oracle.svm.reflect.serialize.hosted.SerializationBuilder.stubConstructor:Ljava/lang/reflect/Constructor;
        11: .line 282
            aload 0 /* this */
            aload 1 /* access */
            putfield com.oracle.svm.reflect.serialize.hosted.SerializationBuilder.access:Lcom/oracle/svm/hosted/FeatureImpl$BeforeAnalysisAccessImpl;
        12: .line 284
            aload 1 /* access */
            invokevirtual com.oracle.svm.hosted.FeatureImpl$BeforeAnalysisAccessImpl.getImageClassLoader:()Lcom/oracle/svm/hosted/ImageClassLoader;
            invokevirtual com.oracle.svm.hosted.ImageClassLoader.getClassLoader:()Ljava/lang/ClassLoader;
            checkcast java.net.URLClassLoader
            astore 2 /* cl */
        start local 2 // java.net.URLClassLoader cl
        13: .line 285
            aload 0 /* this */
            new com.oracle.svm.reflect.serialize.hosted.SerializationBuilder$SerializationChecksumClassLoader
            dup
            aload 2 /* cl */
            invokevirtual java.net.URLClassLoader.getURLs:()[Ljava/net/URL;
            aload 2 /* cl */
            invokevirtual java.net.URLClassLoader.getParent:()Ljava/lang/ClassLoader;
            invokespecial com.oracle.svm.reflect.serialize.hosted.SerializationBuilder$SerializationChecksumClassLoader.<init>:([Ljava/net/URL;Ljava/lang/ClassLoader;)V
            putfield com.oracle.svm.reflect.serialize.hosted.SerializationBuilder.serializationChecksumClassLoader:Lcom/oracle/svm/reflect/serialize/hosted/SerializationBuilder$SerializationChecksumClassLoader;
        14: .line 286
            aload 0 /* this */
            new com.oracle.svm.reflect.serialize.hosted.SerializationBuilder$ChecksumCalculator
            dup
            invokespecial com.oracle.svm.reflect.serialize.hosted.SerializationBuilder$ChecksumCalculator.<init>:()V
            putfield com.oracle.svm.reflect.serialize.hosted.SerializationBuilder.checksumCalculator:Lcom/oracle/svm/reflect/serialize/hosted/SerializationBuilder$ChecksumCalculator;
        15: .line 288
            aload 0 /* this */
            new com.oracle.svm.reflect.serialize.SerializationSupport
            dup
            invokespecial com.oracle.svm.reflect.serialize.SerializationSupport.<init>:()V
            putfield com.oracle.svm.reflect.serialize.hosted.SerializationBuilder.serializationSupport:Lcom/oracle/svm/reflect/serialize/SerializationSupport;
        16: .line 289
            ldc Lcom/oracle/svm/core/jdk/serialize/SerializationRegistry;
            aload 0 /* this */
            getfield com.oracle.svm.reflect.serialize.hosted.SerializationBuilder.serializationSupport:Lcom/oracle/svm/reflect/serialize/SerializationSupport;
            invokestatic org.graalvm.nativeimage.ImageSingletons.add:(Ljava/lang/Class;Ljava/lang/Object;)V
        17: .line 290
            return
        end local 2 // java.net.URLClassLoader cl
        end local 1 // com.oracle.svm.hosted.FeatureImpl$BeforeAnalysisAccessImpl access
        end local 0 // com.oracle.svm.reflect.serialize.hosted.SerializationBuilder this
      LocalVariableTable:
        Start  End  Slot                        Name  Signature
            0   18     0                        this  Lcom/oracle/svm/reflect/serialize/hosted/SerializationBuilder;
            0   18     1                      access  Lcom/oracle/svm/hosted/FeatureImpl$BeforeAnalysisAccessImpl;
            2    7     2      reflectionFactoryClass  Ljava/lang/Class<*>;
            3    7     3  getReflectionFactoryMethod  Ljava/lang/reflect/Method;
            9   10     2                           e  Ljava/lang/ReflectiveOperationException;
           13   18     2                          cl  Ljava/net/URLClassLoader;
      Exception table:
        from    to  target  type
           1     7       8  Class java.lang.ReflectiveOperationException
    MethodParameters:
        Name  Flags
      access  

  private java.lang.reflect.Constructor<?> newConstructorForSerialization(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // com.oracle.svm.reflect.serialize.hosted.SerializationBuilder this
        start local 1 // java.lang.Class serializationTargetClass
         0: .line 294
            aload 0 /* this */
            getfield com.oracle.svm.reflect.serialize.hosted.SerializationBuilder.newConstructorForSerializationMethod:Ljava/lang/reflect/Method;
            aload 0 /* this */
            getfield com.oracle.svm.reflect.serialize.hosted.SerializationBuilder.reflectionFactory:Ljava/lang/Object;
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* serializationTargetClass */
            aastore
            invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.reflect.Constructor
         1: areturn
         2: .line 295
      StackMap locals:
      StackMap stack: java.lang.ReflectiveOperationException
            astore 2 /* e */
        start local 2 // java.lang.ReflectiveOperationException e
         3: .line 296
            aload 2 /* e */
            invokestatic com.oracle.svm.core.util.VMError.shouldNotReachHere:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 2 // java.lang.ReflectiveOperationException e
        end local 1 // java.lang.Class serializationTargetClass
        end local 0 // com.oracle.svm.reflect.serialize.hosted.SerializationBuilder this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0    4     0                      this  Lcom/oracle/svm/reflect/serialize/hosted/SerializationBuilder;
            0    4     1  serializationTargetClass  Ljava/lang/Class<*>;
            3    4     2                         e  Ljava/lang/ReflectiveOperationException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.ReflectiveOperationException
    Signature: (Ljava/lang/Class<*>;)Ljava/lang/reflect/Constructor<*>;
    MethodParameters:
                          Name  Flags
      serializationTargetClass  

  private  getConstructorAccessor(java.lang.reflect.Constructor<?>);
    descriptor: (Ljava/lang/reflect/Constructor;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.svm.reflect.serialize.hosted.SerializationBuilder this
        start local 1 // java.lang.reflect.Constructor constructor
         0: .line 302
            aload 0 /* this */
            getfield com.oracle.svm.reflect.serialize.hosted.SerializationBuilder.getConstructorAccessorMethod:Ljava/lang/reflect/Method;
            aload 1 /* constructor */
            iconst_0
            anewarray java.lang.Object
            invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
         1: areturn
         2: .line 303
      StackMap locals:
      StackMap stack: java.lang.ReflectiveOperationException
            astore 2 /* e */
        start local 2 // java.lang.ReflectiveOperationException e
         3: .line 304
            aload 2 /* e */
            invokestatic com.oracle.svm.core.util.VMError.shouldNotReachHere:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 2 // java.lang.ReflectiveOperationException e
        end local 1 // java.lang.reflect.Constructor constructor
        end local 0 // com.oracle.svm.reflect.serialize.hosted.SerializationBuilder this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0         this  Lcom/oracle/svm/reflect/serialize/hosted/SerializationBuilder;
            0    4     1  constructor  Ljava/lang/reflect/Constructor<*>;
            3    4     2            e  Ljava/lang/ReflectiveOperationException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.ReflectiveOperationException
    Signature: (Ljava/lang/reflect/Constructor<*>;)Ljava/lang/Object;
    MethodParameters:
             Name  Flags
      constructor  

  private java.lang.reflect.Constructor<?> getExternalizableConstructor(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // com.oracle.svm.reflect.serialize.hosted.SerializationBuilder this
        start local 1 // java.lang.Class serializationTargetClass
         0: .line 310
            aload 0 /* this */
            getfield com.oracle.svm.reflect.serialize.hosted.SerializationBuilder.getExternalizableConstructorMethod:Ljava/lang/reflect/Method;
            aconst_null
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* serializationTargetClass */
            aastore
            invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.reflect.Constructor
         1: areturn
         2: .line 311
      StackMap locals:
      StackMap stack: java.lang.ReflectiveOperationException
            astore 2 /* e */
        start local 2 // java.lang.ReflectiveOperationException e
         3: .line 312
            aload 2 /* e */
            invokestatic com.oracle.svm.core.util.VMError.shouldNotReachHere:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 2 // java.lang.ReflectiveOperationException e
        end local 1 // java.lang.Class serializationTargetClass
        end local 0 // com.oracle.svm.reflect.serialize.hosted.SerializationBuilder this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0    4     0                      this  Lcom/oracle/svm/reflect/serialize/hosted/SerializationBuilder;
            0    4     1  serializationTargetClass  Ljava/lang/Class<*>;
            3    4     2                         e  Ljava/lang/ReflectiveOperationException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.ReflectiveOperationException
    Signature: (Ljava/lang/Class<*>;)Ljava/lang/reflect/Constructor<*>;
    MethodParameters:
                          Name  Flags
      serializationTargetClass  

  java.lang.Class<?> addConstructorAccessor(java.lang.Class<?>, java.util.List<java.lang.String>);
    descriptor: (Ljava/lang/Class;Ljava/util/List;)Ljava/lang/Class;
    flags: (0x0000) 
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // com.oracle.svm.reflect.serialize.hosted.SerializationBuilder this
        start local 1 // java.lang.Class serializationTargetClass
        start local 2 // java.util.List configuredChecksums
         0: .line 317
            aload 1 /* serializationTargetClass */
            invokevirtual java.lang.Class.isArray:()Z
            ifne 1
            ldc Ljava/lang/Enum;
            aload 1 /* serializationTargetClass */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 2
         1: .line 318
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
         2: .line 322
      StackMap locals:
      StackMap stack:
            ldc Ljava/io/Externalizable;
            aload 1 /* serializationTargetClass */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 8
         3: .line 324
            aload 0 /* this */
            aload 1 /* serializationTargetClass */
            invokevirtual com.oracle.svm.reflect.serialize.hosted.SerializationBuilder.getExternalizableConstructor:(Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
            astore 3 /* externalizableConstructor */
        start local 3 // java.lang.reflect.Constructor externalizableConstructor
         4: .line 325
            aload 3 /* externalizableConstructor */
            invokevirtual java.lang.reflect.Constructor.getDeclaringClass:()Ljava/lang/Class;
         5: areturn
        end local 3 // java.lang.reflect.Constructor externalizableConstructor
         6: .line 326
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 3 /* e */
        start local 3 // java.lang.Exception e
         7: .line 327
            aload 3 /* e */
            invokestatic com.oracle.svm.core.util.VMError.shouldNotReachHere:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 3 // java.lang.Exception e
         8: .line 338
      StackMap locals:
      StackMap stack:
            aload 1 /* serializationTargetClass */
            invokevirtual java.lang.Class.getModifiers:()I
            invokestatic java.lang.reflect.Modifier.isAbstract:(I)Z
            ifeq 12
         9: .line 339
            aload 0 /* this */
            getfield com.oracle.svm.reflect.serialize.hosted.SerializationBuilder.stubConstructor:Ljava/lang/reflect/Constructor;
            astore 3 /* targetConstructor */
        start local 3 // java.lang.reflect.Constructor targetConstructor
        10: .line 340
            aload 3 /* targetConstructor */
            invokevirtual java.lang.reflect.Constructor.getDeclaringClass:()Ljava/lang/Class;
            astore 4 /* targetConstructorClass */
        start local 4 // java.lang.Class targetConstructorClass
        11: .line 341
            goto 15
        end local 4 // java.lang.Class targetConstructorClass
        end local 3 // java.lang.reflect.Constructor targetConstructor
        12: .line 342
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* serializationTargetClass */
            invokevirtual com.oracle.svm.reflect.serialize.hosted.SerializationBuilder.newConstructorForSerialization:(Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
            astore 3 /* targetConstructor */
        start local 3 // java.lang.reflect.Constructor targetConstructor
        13: .line 343
            aload 3 /* targetConstructor */
            invokevirtual java.lang.reflect.Constructor.getDeclaringClass:()Ljava/lang/Class;
            astore 4 /* targetConstructorClass */
        start local 4 // java.lang.Class targetConstructorClass
        14: .line 344
            aload 0 /* this */
            aload 1 /* serializationTargetClass */
            aload 4 /* targetConstructorClass */
            aload 2 /* configuredChecksums */
            invokevirtual com.oracle.svm.reflect.serialize.hosted.SerializationBuilder.verifyBuildTimeChecksum:(Ljava/lang/Class;Ljava/lang/Class;Ljava/util/List;)V
        15: .line 346
      StackMap locals: java.lang.reflect.Constructor java.lang.Class
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.svm.reflect.serialize.hosted.SerializationBuilder.serializationSupport:Lcom/oracle/svm/reflect/serialize/SerializationSupport;
            aload 1 /* serializationTargetClass */
            aload 4 /* targetConstructorClass */
            aload 0 /* this */
            aload 3 /* targetConstructor */
            invokevirtual com.oracle.svm.reflect.serialize.hosted.SerializationBuilder.getConstructorAccessor:(Ljava/lang/reflect/Constructor;)Ljava/lang/Object;
            invokevirtual com.oracle.svm.reflect.serialize.SerializationSupport.addConstructorAccessor:(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        16: .line 347
            aload 4 /* targetConstructorClass */
            areturn
        end local 4 // java.lang.Class targetConstructorClass
        end local 3 // java.lang.reflect.Constructor targetConstructor
        end local 2 // java.util.List configuredChecksums
        end local 1 // java.lang.Class serializationTargetClass
        end local 0 // com.oracle.svm.reflect.serialize.hosted.SerializationBuilder this
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            0   17     0                       this  Lcom/oracle/svm/reflect/serialize/hosted/SerializationBuilder;
            0   17     1   serializationTargetClass  Ljava/lang/Class<*>;
            0   17     2        configuredChecksums  Ljava/util/List<Ljava/lang/String;>;
            4    6     3  externalizableConstructor  Ljava/lang/reflect/Constructor<*>;
            7    8     3                          e  Ljava/lang/Exception;
           10   12     3          targetConstructor  Ljava/lang/reflect/Constructor<*>;
           13   17     3          targetConstructor  Ljava/lang/reflect/Constructor<*>;
           11   12     4     targetConstructorClass  Ljava/lang/Class<*>;
           14   17     4     targetConstructorClass  Ljava/lang/Class<*>;
      Exception table:
        from    to  target  type
           3     5       6  Class java.lang.Exception
    Signature: (Ljava/lang/Class<*>;Ljava/util/List<Ljava/lang/String;>;)Ljava/lang/Class<*>;
    MethodParameters:
                          Name  Flags
      serializationTargetClass  
      configuredChecksums       

  private void verifyBuildTimeChecksum(java.lang.Class<?>, java.lang.Class<?>, java.util.List<java.lang.String>);
    descriptor: (Ljava/lang/Class;Ljava/lang/Class;Ljava/util/List;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=8, args_size=4
        start local 0 // com.oracle.svm.reflect.serialize.hosted.SerializationBuilder this
        start local 1 // java.lang.Class serializationTargetClass
        start local 2 // java.lang.Class targetConstructorClass
        start local 3 // java.util.List configuredChecksums
         0: .line 351
            aload 3 /* configuredChecksums */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 2
         1: .line 352
            return
         2: .line 355
      StackMap locals:
      StackMap stack:
            aload 1 /* serializationTargetClass */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            astore 4 /* targetClassName */
        start local 4 // java.lang.String targetClassName
         3: .line 357
            aload 4 /* targetClassName */
            iconst_0
            aload 0 /* this */
            getfield com.oracle.svm.reflect.serialize.hosted.SerializationBuilder.serializationChecksumClassLoader:Lcom/oracle/svm/reflect/serialize/hosted/SerializationBuilder$SerializationChecksumClassLoader;
            invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
            astore 5 /* checksumCalculationTargetClass */
        start local 5 // java.lang.Class checksumCalculationTargetClass
         4: .line 359
            aload 0 /* this */
            getfield com.oracle.svm.reflect.serialize.hosted.SerializationBuilder.checksumCalculator:Lcom/oracle/svm/reflect/serialize/hosted/SerializationBuilder$ChecksumCalculator;
            aload 2 /* targetConstructorClass */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aload 4 /* targetClassName */
            aload 5 /* checksumCalculationTargetClass */
            invokevirtual com.oracle.svm.reflect.serialize.hosted.SerializationBuilder$ChecksumCalculator.calculateChecksum:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/String;
            astore 6 /* buildTimeChecksum */
        start local 6 // java.lang.String buildTimeChecksum
         5: .line 361
            aload 3 /* configuredChecksums */
            aload 6 /* buildTimeChecksum */
            invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
            ifne 14
         6: .line 362
            new java.lang.StringBuilder
            dup
            ldc "\nBuild time serialization class checksum verify failure. The classes' hierarchy may have been changed from configuration collecting time to image build time:\n"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         7: .line 364
            aload 4 /* targetClassName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ": configured checksums: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ", "
            aload 3 /* configuredChecksums */
            invokestatic java.lang.String.join:(Ljava/lang/CharSequence;Ljava/lang/Iterable;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         8: .line 365
            aload 4 /* targetClassName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ": build time checksum: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 6 /* buildTimeChecksum */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         9: .line 362
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 7 /* msg */
        start local 7 // java.lang.String msg
        10: .line 366
            aload 0 /* this */
            aload 7 /* msg */
            invokevirtual com.oracle.svm.reflect.serialize.hosted.SerializationBuilder.reportChecksumError:(Ljava/lang/String;)V
        end local 7 // java.lang.String msg
        end local 6 // java.lang.String buildTimeChecksum
        end local 5 // java.lang.Class checksumCalculationTargetClass
        end local 4 // java.lang.String targetClassName
        11: .line 368
            goto 14
      StackMap locals:
      StackMap stack: java.lang.Exception
        12: astore 4 /* e */
        start local 4 // java.lang.Exception e
        13: .line 369
            aload 4 /* e */
            invokestatic com.oracle.svm.core.util.VMError.shouldNotReachHere:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 4 // java.lang.Exception e
        14: .line 371
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.util.List configuredChecksums
        end local 2 // java.lang.Class targetConstructorClass
        end local 1 // java.lang.Class serializationTargetClass
        end local 0 // com.oracle.svm.reflect.serialize.hosted.SerializationBuilder this
      LocalVariableTable:
        Start  End  Slot                            Name  Signature
            0   15     0                            this  Lcom/oracle/svm/reflect/serialize/hosted/SerializationBuilder;
            0   15     1        serializationTargetClass  Ljava/lang/Class<*>;
            0   15     2          targetConstructorClass  Ljava/lang/Class<*>;
            0   15     3             configuredChecksums  Ljava/util/List<Ljava/lang/String;>;
            3   11     4                 targetClassName  Ljava/lang/String;
            4   11     5  checksumCalculationTargetClass  Ljava/lang/Class<*>;
            5   11     6               buildTimeChecksum  Ljava/lang/String;
           10   11     7                             msg  Ljava/lang/String;
           13   14     4                               e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           2    11      12  Class java.security.NoSuchAlgorithmException
           2    11      12  Class java.lang.ClassNotFoundException
    Signature: (Ljava/lang/Class<*>;Ljava/lang/Class<*>;Ljava/util/List<Ljava/lang/String;>;)V
    MethodParameters:
                          Name  Flags
      serializationTargetClass  
      targetConstructorClass    
      configuredChecksums       

  private void reportChecksumError(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // com.oracle.svm.reflect.serialize.hosted.SerializationBuilder this
        start local 1 // java.lang.String exceptionsMsg
         0: .line 374
            getstatic com.oracle.svm.hosted.NativeImageOptions.ReportUnsupportedElementsAtRuntime:Lcom/oracle/svm/core/option/HostedOptionKey;
            ldc "+"
            invokestatic com.oracle.svm.core.option.SubstrateOptionsParser.commandArgument:(Lorg/graalvm/compiler/options/OptionKey;Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* option */
        start local 2 // java.lang.String option
         1: .line 375
            getstatic com.oracle.svm.hosted.NativeImageOptions.ReportUnsupportedElementsAtRuntime:Lcom/oracle/svm/core/option/HostedOptionKey;
            invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifne 7
         2: .line 376
            aload 0 /* this */
            getfield com.oracle.svm.reflect.serialize.hosted.SerializationBuilder.access:Lcom/oracle/svm/hosted/FeatureImpl$BeforeAnalysisAccessImpl;
            invokevirtual com.oracle.svm.hosted.FeatureImpl$BeforeAnalysisAccessImpl.getBigBang:()Lcom/oracle/graal/pointsto/BigBang;
            invokevirtual com.oracle.graal.pointsto.BigBang.getUnsupportedFeatures:()Lcom/oracle/graal/pointsto/constraints/UnsupportedFeatures;
         3: .line 377
            ldc "CHECKSUM_VERIFY_FAIL"
            aconst_null
         4: .line 378
            new java.lang.StringBuilder
            dup
            aload 1 /* exceptionsMsg */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "To allow continuing compilation with above unsupported features, set "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* option */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         5: .line 377
            invokevirtual com.oracle.graal.pointsto.constraints.UnsupportedFeatures.addMessage:(Ljava/lang/String;Lcom/oracle/graal/pointsto/meta/AnalysisMethod;Ljava/lang/String;)V
         6: .line 379
            goto 9
         7: .line 380
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* exceptionsMsg */
            invokestatic com.oracle.svm.reflect.serialize.hosted.SerializationFeature.println:(Ljava/lang/String;)V
         8: .line 381
            new java.lang.StringBuilder
            dup
            ldc "Compilation will continue because "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* option */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " was set. But the program may behave unexpectedly at runtime."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic com.oracle.svm.reflect.serialize.hosted.SerializationFeature.println:(Ljava/lang/String;)V
         9: .line 383
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.String option
        end local 1 // java.lang.String exceptionsMsg
        end local 0 // com.oracle.svm.reflect.serialize.hosted.SerializationBuilder this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   10     0           this  Lcom/oracle/svm/reflect/serialize/hosted/SerializationBuilder;
            0   10     1  exceptionsMsg  Ljava/lang/String;
            1   10     2         option  Ljava/lang/String;
    MethodParameters:
               Name  Flags
      exceptionsMsg  
}
SourceFile: "SerializationFeature.java"
NestMembers:
  com.oracle.svm.reflect.serialize.hosted.SerializationBuilder$ChecksumCalculator  com.oracle.svm.reflect.serialize.hosted.SerializationBuilder$SerializationChecksumClassLoader
InnerClasses:
  public BeforeAnalysisAccessImpl = com.oracle.svm.hosted.FeatureImpl$BeforeAnalysisAccessImpl of com.oracle.svm.hosted.FeatureImpl
  public final StubForAbstractClass = com.oracle.svm.reflect.serialize.SerializationSupport$StubForAbstractClass of com.oracle.svm.reflect.serialize.SerializationSupport
  private final ChecksumCalculator = com.oracle.svm.reflect.serialize.hosted.SerializationBuilder$ChecksumCalculator of com.oracle.svm.reflect.serialize.hosted.SerializationBuilder
  private final SerializationChecksumClassLoader = com.oracle.svm.reflect.serialize.hosted.SerializationBuilder$SerializationChecksumClassLoader of com.oracle.svm.reflect.serialize.hosted.SerializationBuilder