public class com.oracle.svm.hosted.image.DisallowedImageHeapObjectFeature implements org.graalvm.nativeimage.hosted.Feature
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.oracle.svm.hosted.image.DisallowedImageHeapObjectFeature
  super_class: java.lang.Object
{
  private com.oracle.svm.hosted.classinitialization.ClassInitializationSupport classInitialization;
    descriptor: Lcom/oracle/svm/hosted/classinitialization/ClassInitializationSupport;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String[] disallowedSubstrings;
    descriptor: [Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.util.Map<byte[], java.nio.charset.Charset> disallowedByteSubstrings;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Map<[BLjava/nio/charset/Charset;>;

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

  public java.util.List<java.lang.Class<? extends org.graalvm.nativeimage.hosted.Feature>> getRequiredFeatures();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // com.oracle.svm.hosted.image.DisallowedImageHeapObjectFeature this
         0: .line 70
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Lcom/oracle/svm/core/jdk/management/ManagementFeature;
            aastore
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            areturn
        end local 0 // com.oracle.svm.hosted.image.DisallowedImageHeapObjectFeature this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/hosted/image/DisallowedImageHeapObjectFeature;
    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=6, locals=8, args_size=2
        start local 0 // com.oracle.svm.hosted.image.DisallowedImageHeapObjectFeature this
        start local 1 // org.graalvm.nativeimage.hosted.Feature$DuringSetupAccess access
         0: .line 75
            aload 0 /* this */
            aload 1 /* access */
            checkcast com.oracle.svm.hosted.FeatureImpl$DuringSetupAccessImpl
            invokevirtual com.oracle.svm.hosted.FeatureImpl$DuringSetupAccessImpl.getHostVM:()Lcom/oracle/svm/hosted/SVMHost;
            invokevirtual com.oracle.svm.hosted.SVMHost.getClassInitializationSupport:()Lcom/oracle/svm/hosted/classinitialization/ClassInitializationSupport;
            putfield com.oracle.svm.hosted.image.DisallowedImageHeapObjectFeature.classInitialization:Lcom/oracle/svm/hosted/classinitialization/ClassInitializationSupport;
         1: .line 76
            aload 1 /* access */
            aload 0 /* this */
            invokedynamic apply(Lcom/oracle/svm/hosted/image/DisallowedImageHeapObjectFeature;)Ljava/util/function/Function;
              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;)Ljava/lang/Object;
                  com/oracle/svm/hosted/image/DisallowedImageHeapObjectFeature.replacer(Ljava/lang/Object;)Ljava/lang/Object; (7)
                  (Ljava/lang/Object;)Ljava/lang/Object;
            invokeinterface org.graalvm.nativeimage.hosted.Feature$DuringSetupAccess.registerObjectReplacer:(Ljava/util/function/Function;)V
         2: .line 78
            getstatic com.oracle.svm.core.SubstrateOptions.DetectUserDirectoriesInImageHeap: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
            ifeq 23
         3: .line 83
            aload 0 /* this */
            iconst_3
            anewarray java.lang.String
            dup
            iconst_0
         4: .line 84
            ldc "user.home"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            aastore
            dup
            iconst_1
         5: .line 85
            ldc "user.dir"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            aastore
            dup
            iconst_2
         6: .line 86
            ldc "java.home"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            aastore
         7: .line 83
            putfield com.oracle.svm.hosted.image.DisallowedImageHeapObjectFeature.disallowedSubstrings:[Ljava/lang/String;
         8: .line 89
            new java.util.HashSet
            dup
            iconst_3
            anewarray java.nio.charset.Charset
            dup
            iconst_0
         9: .line 90
            getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
            aastore
            dup
            iconst_1
        10: .line 91
            getstatic java.nio.charset.StandardCharsets.UTF_16:Ljava/nio/charset/Charset;
            aastore
            dup
            iconst_2
        11: .line 92
            ldc "sun.jnu.encoding"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            invokestatic java.nio.charset.Charset.forName:(Ljava/lang/String;)Ljava/nio/charset/Charset;
            aastore
        12: .line 89
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
            astore 3 /* encodings */
        start local 3 // java.util.Set encodings
        13: .line 94
            aload 0 /* this */
            new java.util.IdentityHashMap
            dup
            invokespecial java.util.IdentityHashMap.<init>:()V
            putfield com.oracle.svm.hosted.image.DisallowedImageHeapObjectFeature.disallowedByteSubstrings:Ljava/util/Map;
        14: .line 95
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        15: goto 22
        16: .line 96
      StackMap locals: com.oracle.svm.hosted.image.DisallowedImageHeapObjectFeature org.graalvm.nativeimage.hosted.Feature$DuringSetupAccess top java.util.Set int
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.DisallowedImageHeapObjectFeature.disallowedSubstrings:[Ljava/lang/String;
            iload 4 /* i */
            aaload
            astore 5 /* s */
        start local 5 // java.lang.String s
        17: .line 97
            aload 3 /* encodings */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 7
            goto 20
      StackMap locals: com.oracle.svm.hosted.image.DisallowedImageHeapObjectFeature org.graalvm.nativeimage.hosted.Feature$DuringSetupAccess top java.util.Set int java.lang.String top java.util.Iterator
      StackMap stack:
        18: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.nio.charset.Charset
            astore 6 /* encoding */
        start local 6 // java.nio.charset.Charset encoding
        19: .line 98
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.DisallowedImageHeapObjectFeature.disallowedByteSubstrings:Ljava/util/Map;
            aload 5 /* s */
            aload 6 /* encoding */
            invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
            aload 6 /* encoding */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 6 // java.nio.charset.Charset encoding
        20: .line 97
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 18
        end local 5 // java.lang.String s
        21: .line 95
            iinc 4 /* i */ 1
      StackMap locals: com.oracle.svm.hosted.image.DisallowedImageHeapObjectFeature org.graalvm.nativeimage.hosted.Feature$DuringSetupAccess top java.util.Set int
      StackMap stack:
        22: iload 4 /* i */
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.DisallowedImageHeapObjectFeature.disallowedSubstrings:[Ljava/lang/String;
            arraylength
            if_icmplt 16
        end local 4 // int i
        end local 3 // java.util.Set encodings
        23: .line 102
      StackMap locals: com.oracle.svm.hosted.image.DisallowedImageHeapObjectFeature org.graalvm.nativeimage.hosted.Feature$DuringSetupAccess
      StackMap stack:
            return
        end local 1 // org.graalvm.nativeimage.hosted.Feature$DuringSetupAccess access
        end local 0 // com.oracle.svm.hosted.image.DisallowedImageHeapObjectFeature this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   24     0       this  Lcom/oracle/svm/hosted/image/DisallowedImageHeapObjectFeature;
            0   24     1     access  Lorg/graalvm/nativeimage/hosted/Feature$DuringSetupAccess;
           13   23     3  encodings  Ljava/util/Set<Ljava/nio/charset/Charset;>;
           15   23     4          i  I
           17   21     5          s  Ljava/lang/String;
           19   20     6   encoding  Ljava/nio/charset/Charset;
    MethodParameters:
        Name  Flags
      access  

  private java.lang.Object replacer(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=7, args_size=2
        start local 0 // com.oracle.svm.hosted.image.DisallowedImageHeapObjectFeature this
        start local 1 // java.lang.Object original
         0: .line 105
            aload 1 /* original */
            instanceof java.lang.Thread
            ifeq 2
            aload 1 /* original */
            instanceof com.oracle.svm.util.ImageGeneratorThreadMarker
            ifeq 2
         1: .line 106
            aload 1 /* original */
            checkcast com.oracle.svm.util.ImageGeneratorThreadMarker
            invokeinterface com.oracle.svm.util.ImageGeneratorThreadMarker.asTerminated:()Ljava/lang/Thread;
            areturn
         2: .line 109
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* original */
            invokevirtual com.oracle.svm.hosted.image.DisallowedImageHeapObjectFeature.checkDisallowedMBeanObjects:(Ljava/lang/Object;)V
         3: .line 111
            aload 1 /* original */
            instanceof java.lang.String
            ifeq 15
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.DisallowedImageHeapObjectFeature.disallowedSubstrings:[Ljava/lang/String;
            ifnull 15
         4: .line 112
            aload 1 /* original */
            checkcast java.lang.String
            astore 2 /* string */
        start local 2 // java.lang.String string
         5: .line 113
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.DisallowedImageHeapObjectFeature.disallowedSubstrings:[Ljava/lang/String;
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 14
      StackMap locals: com.oracle.svm.hosted.image.DisallowedImageHeapObjectFeature java.lang.Object java.lang.String top int int java.lang.String[]
      StackMap stack:
         6: aload 6
            iload 4
            aaload
            astore 3 /* disallowedSubstring */
        start local 3 // java.lang.String disallowedSubstring
         7: .line 114
            aload 2 /* string */
            aload 3 /* disallowedSubstring */
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 13
         8: .line 115
            new com.oracle.graal.pointsto.constraints.UnsupportedFeatureException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Detected a string in the image heap that contains a user directory. This means that file system information from the native image build is persisted and available at image runtime, which is most likely an error."
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         9: .line 117
            invokestatic java.lang.System.lineSeparator:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "String that is problematic: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* string */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokestatic java.lang.System.lineSeparator:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        10: .line 118
            ldc "Disallowed substring with user directory: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* disallowedSubstring */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokestatic java.lang.System.lineSeparator:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        11: .line 119
            ldc "This check can be disabled using the option "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            getstatic com.oracle.svm.core.SubstrateOptions.DetectUserDirectoriesInImageHeap: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;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        12: .line 115
            invokespecial com.oracle.graal.pointsto.constraints.UnsupportedFeatureException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // java.lang.String disallowedSubstring
        13: .line 113
      StackMap locals:
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
        14: iload 4
            iload 5
            if_icmplt 6
        end local 2 // java.lang.String string
        15: .line 124
      StackMap locals: com.oracle.svm.hosted.image.DisallowedImageHeapObjectFeature java.lang.Object
      StackMap stack:
            aload 1 /* original */
            instanceof byte[]
            ifeq 28
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.DisallowedImageHeapObjectFeature.disallowedByteSubstrings:Ljava/util/Map;
            ifnull 28
        16: .line 125
            aload 1 /* original */
            checkcast byte[]
            astore 2 /* bytes */
        start local 2 // byte[] bytes
        17: .line 126
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.DisallowedImageHeapObjectFeature.disallowedByteSubstrings:Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4
            goto 27
      StackMap locals: com.oracle.svm.hosted.image.DisallowedImageHeapObjectFeature java.lang.Object byte[] top java.util.Iterator
      StackMap stack:
        18: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 3 /* entry */
        start local 3 // java.util.Map$Entry entry
        19: .line 127
            aload 3 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast byte[]
            astore 5 /* disallowedSubstring */
        start local 5 // byte[] disallowedSubstring
        20: .line 128
            aload 2 /* bytes */
            aload 5 /* disallowedSubstring */
            invokestatic com.oracle.svm.hosted.image.DisallowedImageHeapObjectFeature.search:([B[B)Z
            ifeq 27
        21: .line 129
            aload 3 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.nio.charset.Charset
            astore 6 /* charset */
        start local 6 // java.nio.charset.Charset charset
        22: .line 130
            new com.oracle.graal.pointsto.constraints.UnsupportedFeatureException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Detected a byte[] in the image heap that contains a user directory. This means that file system information from the native image build is persisted and available at image runtime, which is most likely an error."
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        23: .line 132
            invokestatic java.lang.System.lineSeparator:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "byte[] that is problematic: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            new java.lang.String
            dup
            aload 2 /* bytes */
            aload 6 /* charset */
            invokespecial java.lang.String.<init>:([BLjava/nio/charset/Charset;)V
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokestatic java.lang.System.lineSeparator:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        24: .line 133
            ldc "Disallowed substring with user directory: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            new java.lang.String
            dup
            aload 5 /* disallowedSubstring */
            aload 6 /* charset */
            invokespecial java.lang.String.<init>:([BLjava/nio/charset/Charset;)V
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokestatic java.lang.System.lineSeparator:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        25: .line 134
            ldc "This check can be disabled using the option "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            getstatic com.oracle.svm.core.SubstrateOptions.DetectUserDirectoriesInImageHeap: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;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        26: .line 130
            invokespecial com.oracle.graal.pointsto.constraints.UnsupportedFeatureException.<init>:(Ljava/lang/String;)V
            athrow
        end local 6 // java.nio.charset.Charset charset
        end local 5 // byte[] disallowedSubstring
        end local 3 // java.util.Map$Entry entry
        27: .line 126
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 18
        end local 2 // byte[] bytes
        28: .line 139
      StackMap locals: com.oracle.svm.hosted.image.DisallowedImageHeapObjectFeature java.lang.Object
      StackMap stack:
            aload 1 /* original */
            aload 0 /* this */
            invokedynamic raise(Lcom/oracle/svm/hosted/image/DisallowedImageHeapObjectFeature;)Lcom/oracle/svm/core/image/DisallowedImageHeapObjects$DisallowedObjectReporter;
              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/String;Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/RuntimeException;
                  com/oracle/svm/hosted/image/DisallowedImageHeapObjectFeature.error(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/RuntimeException; (7)
                  (Ljava/lang/String;Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/RuntimeException;
            invokestatic com.oracle.svm.core.image.DisallowedImageHeapObjects.check:(Ljava/lang/Object;Lcom/oracle/svm/core/image/DisallowedImageHeapObjects$DisallowedObjectReporter;)V
        29: .line 140
            aload 1 /* original */
            areturn
        end local 1 // java.lang.Object original
        end local 0 // com.oracle.svm.hosted.image.DisallowedImageHeapObjectFeature this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   30     0                 this  Lcom/oracle/svm/hosted/image/DisallowedImageHeapObjectFeature;
            0   30     1             original  Ljava/lang/Object;
            5   15     2               string  Ljava/lang/String;
            7   13     3  disallowedSubstring  Ljava/lang/String;
           17   28     2                bytes  [B
           19   27     3                entry  Ljava/util/Map$Entry<[BLjava/nio/charset/Charset;>;
           20   27     5  disallowedSubstring  [B
           22   27     6              charset  Ljava/nio/charset/Charset;
    MethodParameters:
          Name  Flags
      original  

  private void checkDisallowedMBeanObjects(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.oracle.svm.hosted.image.DisallowedImageHeapObjectFeature this
        start local 1 // java.lang.Object original
         0: .line 145
            aload 1 /* original */
            instanceof javax.management.MBeanServerConnection
            ifeq 5
         1: .line 146
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "Detected a MBean server in the image heap. This is currently not supported, but could be changed in the future. Management beans are registered in many global caches that would need to be cleared and properly re-built at image build time. Class of disallowed object: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         2: .line 148
            aload 1 /* original */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         3: .line 149
            aload 1 /* original */
            ldc "Try to avoid initializing the class that stores a MBean server or a MBean in a static field"
         4: .line 146
            invokevirtual com.oracle.svm.hosted.image.DisallowedImageHeapObjectFeature.error:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
         5: .line 151
      StackMap locals:
      StackMap stack:
            aload 1 /* original */
            instanceof java.lang.management.PlatformManagedObject
            ifeq 10
            invokestatic com.oracle.svm.core.jdk.management.ManagementSupport.getSingleton:()Lcom/oracle/svm/core/jdk/management/ManagementSupport;
            aload 1 /* original */
            checkcast java.lang.management.PlatformManagedObject
            invokevirtual com.oracle.svm.core.jdk.management.ManagementSupport.isAllowedPlatformManagedObject:(Ljava/lang/management/PlatformManagedObject;)Z
            ifne 10
         6: .line 152
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "Detected a PlatformManagedObject (a MXBean defined by the virtual machine) in the image heap. This bean is introspecting the VM that runs the image builder, i.e., a VM instance that is no longer available at image runtime. Class of disallowed object: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         7: .line 154
            aload 1 /* original */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         8: .line 155
            aload 1 /* original */
            ldc "Try to avoid initializing the class that stores the object in a static field"
         9: .line 152
            invokevirtual com.oracle.svm.hosted.image.DisallowedImageHeapObjectFeature.error:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        10: .line 157
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Object original
        end local 0 // com.oracle.svm.hosted.image.DisallowedImageHeapObjectFeature this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0      this  Lcom/oracle/svm/hosted/image/DisallowedImageHeapObjectFeature;
            0   11     1  original  Ljava/lang/Object;
    MethodParameters:
          Name  Flags
      original  

  private java.lang.RuntimeException error(java.lang.String, java.lang.Object, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/RuntimeException;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // com.oracle.svm.hosted.image.DisallowedImageHeapObjectFeature this
        start local 1 // java.lang.String msg
        start local 2 // java.lang.Object obj
        start local 3 // java.lang.String initializerAction
         0: .line 160
            new com.oracle.graal.pointsto.constraints.UnsupportedFeatureException
            dup
            new java.lang.StringBuilder
            dup
            aload 1 /* msg */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.DisallowedImageHeapObjectFeature.classInitialization:Lcom/oracle/svm/hosted/classinitialization/ClassInitializationSupport;
            aload 2 /* obj */
            aload 3 /* initializerAction */
            invokeinterface com.oracle.svm.hosted.classinitialization.ClassInitializationSupport.objectInstantiationTraceMessage:(Ljava/lang/Object;Ljava/lang/String;)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;
         1: .line 161
            ldc "The object was probably created by a class initializer and is reachable from a static field. "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 162
            ldc "You can request class initialization at image runtime by using the option "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         3: .line 163
            getstatic com.oracle.svm.hosted.classinitialization.ClassInitializationFeature$Options.ClassInitialization:Lcom/oracle/svm/core/option/HostedOptionKey;
            ldc "<class-name>"
            ldc "initialize-at-run-time"
            invokestatic com.oracle.svm.core.option.SubstrateOptionsParser.commandArgument:(Lorg/graalvm/compiler/options/OptionKey;Ljava/lang/String;Ljava/lang/String;)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;
         4: .line 164
            ldc "Or you can write your own initialization methods and call them explicitly from your main entry point."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         5: .line 160
            invokespecial com.oracle.graal.pointsto.constraints.UnsupportedFeatureException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // java.lang.String initializerAction
        end local 2 // java.lang.Object obj
        end local 1 // java.lang.String msg
        end local 0 // com.oracle.svm.hosted.image.DisallowedImageHeapObjectFeature this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    6     0               this  Lcom/oracle/svm/hosted/image/DisallowedImageHeapObjectFeature;
            0    6     1                msg  Ljava/lang/String;
            0    6     2                obj  Ljava/lang/Object;
            0    6     3  initializerAction  Ljava/lang/String;
    MethodParameters:
                   Name  Flags
      msg                
      obj                
      initializerAction  

  private static boolean search(byte[], byte[]);
    descriptor: ([B[B)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // byte[] haystack
        start local 1 // byte[] needle
         0: .line 168
            aload 1 /* needle */
            iconst_0
            baload
            istore 2 /* first */
        start local 2 // byte first
         1: .line 169
            iconst_0
            istore 3 /* start */
        start local 3 // int start
         2: goto 15
         3: .line 170
      StackMap locals: int int
      StackMap stack:
            aload 0 /* haystack */
            iload 3 /* start */
            baload
            iload 2 /* first */
            if_icmpne 14
         4: .line 171
            iconst_1
            istore 4 /* same */
        start local 4 // boolean same
         5: .line 172
            iconst_1
            istore 5 /* i */
        start local 5 // int i
         6: goto 11
         7: .line 173
      StackMap locals: int int
      StackMap stack:
            aload 0 /* haystack */
            iload 3 /* start */
            iload 5 /* i */
            iadd
            baload
            aload 1 /* needle */
            iload 5 /* i */
            baload
            if_icmpeq 10
         8: .line 174
            iconst_0
            istore 4 /* same */
         9: .line 175
            goto 12
        10: .line 172
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 5 /* i */
            aload 1 /* needle */
            arraylength
            if_icmplt 7
        end local 5 // int i
        12: .line 178
      StackMap locals:
      StackMap stack:
            iload 4 /* same */
            ifeq 14
        13: .line 179
            iconst_1
            ireturn
        end local 4 // boolean same
        14: .line 169
      StackMap locals:
      StackMap stack:
            iinc 3 /* start */ 1
      StackMap locals:
      StackMap stack:
        15: iload 3 /* start */
            aload 0 /* haystack */
            arraylength
            aload 1 /* needle */
            arraylength
            isub
            if_icmplt 3
        end local 3 // int start
        16: .line 183
            iconst_0
            ireturn
        end local 2 // byte first
        end local 1 // byte[] needle
        end local 0 // byte[] haystack
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   17     0  haystack  [B
            0   17     1    needle  [B
            1   17     2     first  B
            2   16     3     start  I
            5   14     4      same  Z
            6   12     5         i  I
    MethodParameters:
          Name  Flags
      haystack  
      needle    
}
SourceFile: "DisallowedImageHeapObjectFeature.java"
InnerClasses:
  public abstract DisallowedObjectReporter = com.oracle.svm.core.image.DisallowedImageHeapObjects$DisallowedObjectReporter of com.oracle.svm.core.image.DisallowedImageHeapObjects
  public DuringSetupAccessImpl = com.oracle.svm.hosted.FeatureImpl$DuringSetupAccessImpl of com.oracle.svm.hosted.FeatureImpl
  public Options = com.oracle.svm.hosted.classinitialization.ClassInitializationFeature$Options of com.oracle.svm.hosted.classinitialization.ClassInitializationFeature
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public abstract Entry = java.util.Map$Entry of java.util.Map
  public abstract DuringSetupAccess = org.graalvm.nativeimage.hosted.Feature$DuringSetupAccess of org.graalvm.nativeimage.hosted.Feature
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.AutomaticFeature()