final class com.oracle.svm.core.jdk.Target_java_security_AccessController
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.oracle.svm.core.jdk.Target_java_security_AccessController
  super_class: java.lang.Object
{
  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.core.jdk.Target_java_security_AccessController this
         0: .line 79
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // com.oracle.svm.core.jdk.Target_java_security_AccessController this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/core/jdk/Target_java_security_AccessController;

  private static <T> T doPrivileged(java.security.PrivilegedAction<T>);
    descriptor: (Ljava/security/PrivilegedAction;)Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // java.security.PrivilegedAction action
         0: .line 84
            aload 0 /* action */
            invokeinterface java.security.PrivilegedAction.run:()Ljava/lang/Object;
         1: areturn
         2: .line 85
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1 /* ex */
        start local 1 // java.lang.Throwable ex
         3: .line 86
            aload 1 /* ex */
            invokestatic com.oracle.svm.core.jdk.AccessControllerUtil.wrapCheckedException:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            athrow
        end local 1 // java.lang.Throwable ex
        end local 0 // java.security.PrivilegedAction action
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0  action  Ljava/security/PrivilegedAction<TT;>;
            3    4     1      ex  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Throwable
    Exceptions:
      throws java.lang.Throwable
    Signature: <T:Ljava/lang/Object;>(Ljava/security/PrivilegedAction<TT;>;)TT;
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.Substitute()
    MethodParameters:
        Name  Flags
      action  

  private static <T> T doPrivilegedWithCombiner(java.security.PrivilegedAction<T>);
    descriptor: (Ljava/security/PrivilegedAction;)Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // java.security.PrivilegedAction action
         0: .line 93
            aload 0 /* action */
            invokeinterface java.security.PrivilegedAction.run:()Ljava/lang/Object;
         1: areturn
         2: .line 94
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1 /* ex */
        start local 1 // java.lang.Throwable ex
         3: .line 95
            aload 1 /* ex */
            invokestatic com.oracle.svm.core.jdk.AccessControllerUtil.wrapCheckedException:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            athrow
        end local 1 // java.lang.Throwable ex
        end local 0 // java.security.PrivilegedAction action
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0  action  Ljava/security/PrivilegedAction<TT;>;
            3    4     1      ex  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Throwable
    Exceptions:
      throws java.lang.Throwable
    Signature: <T:Ljava/lang/Object;>(Ljava/security/PrivilegedAction<TT;>;)TT;
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.Substitute()
    MethodParameters:
        Name  Flags
      action  

  private static <T> T doPrivileged(java.security.PrivilegedAction<T>, java.security.AccessControlContext);
    descriptor: (Ljava/security/PrivilegedAction;Ljava/security/AccessControlContext;)Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=3, args_size=2
        start local 0 // java.security.PrivilegedAction action
        start local 1 // java.security.AccessControlContext context
         0: .line 102
            aload 0 /* action */
            invokeinterface java.security.PrivilegedAction.run:()Ljava/lang/Object;
         1: areturn
         2: .line 103
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 2 /* ex */
        start local 2 // java.lang.Throwable ex
         3: .line 104
            aload 2 /* ex */
            invokestatic com.oracle.svm.core.jdk.AccessControllerUtil.wrapCheckedException:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            athrow
        end local 2 // java.lang.Throwable ex
        end local 1 // java.security.AccessControlContext context
        end local 0 // java.security.PrivilegedAction action
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0   action  Ljava/security/PrivilegedAction<TT;>;
            0    4     1  context  Ljava/security/AccessControlContext;
            3    4     2       ex  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Throwable
    Exceptions:
      throws java.lang.Throwable
    Signature: <T:Ljava/lang/Object;>(Ljava/security/PrivilegedAction<TT;>;Ljava/security/AccessControlContext;)TT;
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.Substitute()
    MethodParameters:
         Name  Flags
      action   
      context  

  private static <T> T doPrivileged(java.security.PrivilegedAction<T>, java.security.AccessControlContext, java.security.Permission[]);
    descriptor: (Ljava/security/PrivilegedAction;Ljava/security/AccessControlContext;[Ljava/security/Permission;)Ljava/lang/Object;
    flags: (0x008a) ACC_PRIVATE, ACC_STATIC, ACC_VARARGS
    Code:
      stack=1, locals=4, args_size=3
        start local 0 // java.security.PrivilegedAction action
        start local 1 // java.security.AccessControlContext context
        start local 2 // java.security.Permission[] perms
         0: .line 111
            aload 0 /* action */
            invokeinterface java.security.PrivilegedAction.run:()Ljava/lang/Object;
         1: areturn
         2: .line 112
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 3 /* ex */
        start local 3 // java.lang.Throwable ex
         3: .line 113
            aload 3 /* ex */
            invokestatic com.oracle.svm.core.jdk.AccessControllerUtil.wrapCheckedException:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            athrow
        end local 3 // java.lang.Throwable ex
        end local 2 // java.security.Permission[] perms
        end local 1 // java.security.AccessControlContext context
        end local 0 // java.security.PrivilegedAction action
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0   action  Ljava/security/PrivilegedAction<TT;>;
            0    4     1  context  Ljava/security/AccessControlContext;
            0    4     2    perms  [Ljava/security/Permission;
            3    4     3       ex  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Throwable
    Exceptions:
      throws java.lang.Throwable
    Signature: <T:Ljava/lang/Object;>(Ljava/security/PrivilegedAction<TT;>;Ljava/security/AccessControlContext;[Ljava/security/Permission;)TT;
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.Substitute()
    MethodParameters:
         Name  Flags
      action   
      context  
      perms    

  private static <T> T doPrivileged(java.security.PrivilegedExceptionAction<T>);
    descriptor: (Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // java.security.PrivilegedExceptionAction action
         0: .line 120
            aload 0 /* action */
            invokeinterface java.security.PrivilegedExceptionAction.run:()Ljava/lang/Object;
         1: areturn
         2: .line 121
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1 /* ex */
        start local 1 // java.lang.Throwable ex
         3: .line 122
            aload 1 /* ex */
            invokestatic com.oracle.svm.core.jdk.AccessControllerUtil.wrapCheckedException:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            athrow
        end local 1 // java.lang.Throwable ex
        end local 0 // java.security.PrivilegedExceptionAction action
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0  action  Ljava/security/PrivilegedExceptionAction<TT;>;
            3    4     1      ex  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Throwable
    Exceptions:
      throws java.lang.Throwable
    Signature: <T:Ljava/lang/Object;>(Ljava/security/PrivilegedExceptionAction<TT;>;)TT;
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.Substitute()
    MethodParameters:
        Name  Flags
      action  

  private static <T> T doPrivilegedWithCombiner(java.security.PrivilegedExceptionAction<T>);
    descriptor: (Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // java.security.PrivilegedExceptionAction action
         0: .line 129
            aload 0 /* action */
            invokeinterface java.security.PrivilegedExceptionAction.run:()Ljava/lang/Object;
         1: areturn
         2: .line 130
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1 /* ex */
        start local 1 // java.lang.Throwable ex
         3: .line 131
            aload 1 /* ex */
            invokestatic com.oracle.svm.core.jdk.AccessControllerUtil.wrapCheckedException:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            athrow
        end local 1 // java.lang.Throwable ex
        end local 0 // java.security.PrivilegedExceptionAction action
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0  action  Ljava/security/PrivilegedExceptionAction<TT;>;
            3    4     1      ex  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Throwable
    Exceptions:
      throws java.lang.Throwable
    Signature: <T:Ljava/lang/Object;>(Ljava/security/PrivilegedExceptionAction<TT;>;)TT;
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.Substitute()
    MethodParameters:
        Name  Flags
      action  

  private static <T> T doPrivilegedWithCombiner(java.security.PrivilegedExceptionAction<T>, java.security.AccessControlContext, java.security.Permission[]);
    descriptor: (Ljava/security/PrivilegedExceptionAction;Ljava/security/AccessControlContext;[Ljava/security/Permission;)Ljava/lang/Object;
    flags: (0x008a) ACC_PRIVATE, ACC_STATIC, ACC_VARARGS
    Code:
      stack=1, locals=4, args_size=3
        start local 0 // java.security.PrivilegedExceptionAction action
        start local 1 // java.security.AccessControlContext context
        start local 2 // java.security.Permission[] perms
         0: .line 138
            aload 0 /* action */
            invokeinterface java.security.PrivilegedExceptionAction.run:()Ljava/lang/Object;
         1: areturn
         2: .line 139
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 3 /* ex */
        start local 3 // java.lang.Throwable ex
         3: .line 140
            aload 3 /* ex */
            invokestatic com.oracle.svm.core.jdk.AccessControllerUtil.wrapCheckedException:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            athrow
        end local 3 // java.lang.Throwable ex
        end local 2 // java.security.Permission[] perms
        end local 1 // java.security.AccessControlContext context
        end local 0 // java.security.PrivilegedExceptionAction action
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0   action  Ljava/security/PrivilegedExceptionAction<TT;>;
            0    4     1  context  Ljava/security/AccessControlContext;
            0    4     2    perms  [Ljava/security/Permission;
            3    4     3       ex  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Throwable
    Exceptions:
      throws java.lang.Throwable
    Signature: <T:Ljava/lang/Object;>(Ljava/security/PrivilegedExceptionAction<TT;>;Ljava/security/AccessControlContext;[Ljava/security/Permission;)TT;
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.Substitute()
    MethodParameters:
         Name  Flags
      action   
      context  
      perms    

  private static <T> T doPrivileged(java.security.PrivilegedExceptionAction<T>, java.security.AccessControlContext);
    descriptor: (Ljava/security/PrivilegedExceptionAction;Ljava/security/AccessControlContext;)Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=3, args_size=2
        start local 0 // java.security.PrivilegedExceptionAction action
        start local 1 // java.security.AccessControlContext context
         0: .line 147
            aload 0 /* action */
            invokeinterface java.security.PrivilegedExceptionAction.run:()Ljava/lang/Object;
         1: areturn
         2: .line 148
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 2 /* ex */
        start local 2 // java.lang.Throwable ex
         3: .line 149
            aload 2 /* ex */
            invokestatic com.oracle.svm.core.jdk.AccessControllerUtil.wrapCheckedException:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            athrow
        end local 2 // java.lang.Throwable ex
        end local 1 // java.security.AccessControlContext context
        end local 0 // java.security.PrivilegedExceptionAction action
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0   action  Ljava/security/PrivilegedExceptionAction<TT;>;
            0    4     1  context  Ljava/security/AccessControlContext;
            3    4     2       ex  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Throwable
    Exceptions:
      throws java.lang.Throwable
    Signature: <T:Ljava/lang/Object;>(Ljava/security/PrivilegedExceptionAction<TT;>;Ljava/security/AccessControlContext;)TT;
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.Substitute()
    MethodParameters:
         Name  Flags
      action   
      context  

  private static void checkPermission(java.security.Permission);
    descriptor: (Ljava/security/Permission;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // java.security.Permission perm
         0: .line 155
            return
        end local 0 // java.security.Permission perm
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  perm  Ljava/security/Permission;
    Exceptions:
      throws java.security.AccessControlException
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.Substitute()
    MethodParameters:
      Name  Flags
      perm  

  private static java.security.AccessControlContext getContext();
    descriptor: ()Ljava/security/AccessControlContext;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 159
            getstatic com.oracle.svm.core.jdk.AccessControllerUtil.NO_CONTEXT_SINGLETON:Ljava/security/AccessControlContext;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.Substitute()

  private static java.security.AccessControlContext createWrapper(java.security.DomainCombiner, java.lang.Class<?>, java.security.AccessControlContext, java.security.AccessControlContext, java.security.Permission[]);
    descriptor: (Ljava/security/DomainCombiner;Ljava/lang/Class;Ljava/security/AccessControlContext;Ljava/security/AccessControlContext;[Ljava/security/Permission;)Ljava/security/AccessControlContext;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=5, args_size=5
        start local 0 // java.security.DomainCombiner combiner
        start local 1 // java.lang.Class caller
        start local 2 // java.security.AccessControlContext parent
        start local 3 // java.security.AccessControlContext context
        start local 4 // java.security.Permission[] perms
         0: .line 164
            getstatic com.oracle.svm.core.jdk.AccessControllerUtil.NO_CONTEXT_SINGLETON:Ljava/security/AccessControlContext;
            areturn
        end local 4 // java.security.Permission[] perms
        end local 3 // java.security.AccessControlContext context
        end local 2 // java.security.AccessControlContext parent
        end local 1 // java.lang.Class caller
        end local 0 // java.security.DomainCombiner combiner
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  combiner  Ljava/security/DomainCombiner;
            0    1     1    caller  Ljava/lang/Class<*>;
            0    1     2    parent  Ljava/security/AccessControlContext;
            0    1     3   context  Ljava/security/AccessControlContext;
            0    1     4     perms  [Ljava/security/Permission;
    Signature: (Ljava/security/DomainCombiner;Ljava/lang/Class<*>;Ljava/security/AccessControlContext;Ljava/security/AccessControlContext;[Ljava/security/Permission;)Ljava/security/AccessControlContext;
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.Substitute()
    MethodParameters:
          Name  Flags
      combiner  
      caller    
      parent    
      context   
      perms     
}
SourceFile: "SecuritySubstitutions.java"
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.TargetClass(value = Ljava/security/AccessController;)