public final class jdk.internal.module.IllegalAccessLogger
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: jdk.internal.module.IllegalAccessLogger
super_class: java.lang.Object
{
private static final jdk.internal.access.JavaLangAccess JLA;
descriptor: Ljdk/internal/access/JavaLangAccess;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static volatile jdk.internal.module.IllegalAccessLogger logger;
descriptor: Ljdk/internal/module/IllegalAccessLogger;
flags: (0x004a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE
private final jdk.internal.module.IllegalAccessLogger$Mode mode;
descriptor: Ljdk/internal/module/IllegalAccessLogger$Mode;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.io.PrintStream warningStream;
descriptor: Ljava/io/PrintStream;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.Map<java.lang.Module, java.util.Set<java.lang.String>> moduleToConcealedPackages;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/Module;Ljava/util/Set<Ljava/lang/String;>;>;
private final java.util.Map<java.lang.Module, java.util.Set<java.lang.String>> moduleToExportedPackages;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/Module;Ljava/util/Set<Ljava/lang/String;>;>;
private final java.util.Map<java.lang.Class<?>, jdk.internal.module.IllegalAccessLogger$Usages> callerToUsages;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/Class<*>;Ljdk/internal/module/IllegalAccessLogger$Usages;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: invokestatic jdk.internal.access.SharedSecrets.getJavaLangAccess:()Ljdk/internal/access/JavaLangAccess;
putstatic jdk.internal.module.IllegalAccessLogger.JLA:Ljdk/internal/access/JavaLangAccess;
1: return
LocalVariableTable:
Start End Slot Name Signature
private void <init>(jdk.internal.module.IllegalAccessLogger$Mode, java.io.PrintStream, java.util.Map<java.lang.Module, java.util.Set<java.lang.String>>, java.util.Map<java.lang.Module, java.util.Set<java.lang.String>>);
descriptor: (Ljdk/internal/module/IllegalAccessLogger$Mode;Ljava/io/PrintStream;Ljava/util/Map;Ljava/util/Map;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.WeakHashMap
dup
invokespecial java.util.WeakHashMap.<init>:()V
putfield jdk.internal.module.IllegalAccessLogger.callerToUsages:Ljava/util/Map;
2: aload 0
aload 1
putfield jdk.internal.module.IllegalAccessLogger.mode:Ljdk/internal/module/IllegalAccessLogger$Mode;
3: aload 0
aload 2
putfield jdk.internal.module.IllegalAccessLogger.warningStream:Ljava/io/PrintStream;
4: aload 0
aload 3
putfield jdk.internal.module.IllegalAccessLogger.moduleToConcealedPackages:Ljava/util/Map;
5: aload 0
aload 4
putfield jdk.internal.module.IllegalAccessLogger.moduleToExportedPackages:Ljava/util/Map;
6: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljdk/internal/module/IllegalAccessLogger;
0 7 1 mode Ljdk/internal/module/IllegalAccessLogger$Mode;
0 7 2 warningStream Ljava/io/PrintStream;
0 7 3 moduleToConcealedPackages Ljava/util/Map<Ljava/lang/Module;Ljava/util/Set<Ljava/lang/String;>;>;
0 7 4 moduleToExportedPackages Ljava/util/Map<Ljava/lang/Module;Ljava/util/Set<Ljava/lang/String;>;>;
Signature: (Ljdk/internal/module/IllegalAccessLogger$Mode;Ljava/io/PrintStream;Ljava/util/Map<Ljava/lang/Module;Ljava/util/Set<Ljava/lang/String;>;>;Ljava/util/Map<Ljava/lang/Module;Ljava/util/Set<Ljava/lang/String;>;>;)V
MethodParameters:
Name Flags
mode
warningStream
moduleToConcealedPackages
moduleToExportedPackages
public static jdk.internal.module.IllegalAccessLogger illegalAccessLogger();
descriptor: ()Ljdk/internal/module/IllegalAccessLogger;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic jdk.internal.module.IllegalAccessLogger.logger:Ljdk/internal/module/IllegalAccessLogger;
areturn
LocalVariableTable:
Start End Slot Name Signature
public boolean isExportedForIllegalAccess(java.lang.Module, java.lang.String);
descriptor: (Ljava/lang/Module;Ljava/lang/String;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield jdk.internal.module.IllegalAccessLogger.moduleToConcealedPackages:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.Set
astore 3
start local 3 1: aload 3
ifnull 3
aload 3
aload 2
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 3
2: iconst_1
ireturn
3: StackMap locals: java.util.Set
StackMap stack:
iconst_0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljdk/internal/module/IllegalAccessLogger;
0 4 1 module Ljava/lang/Module;
0 4 2 pn Ljava/lang/String;
1 4 3 packages Ljava/util/Set<Ljava/lang/String;>;
MethodParameters:
Name Flags
module
pn
public boolean isOpenForIllegalAccess(java.lang.Module, java.lang.String);
descriptor: (Ljava/lang/Module;Ljava/lang/String;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
invokevirtual jdk.internal.module.IllegalAccessLogger.isExportedForIllegalAccess:(Ljava/lang/Module;Ljava/lang/String;)Z
ifeq 2
1: iconst_1
ireturn
2: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.module.IllegalAccessLogger.moduleToExportedPackages:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.Set
astore 3
start local 3 3: aload 3
ifnull 5
aload 3
aload 2
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 5
4: iconst_1
ireturn
5: StackMap locals: java.util.Set
StackMap stack:
iconst_0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljdk/internal/module/IllegalAccessLogger;
0 6 1 module Ljava/lang/Module;
0 6 2 pn Ljava/lang/String;
3 6 3 packages Ljava/util/Set<Ljava/lang/String;>;
MethodParameters:
Name Flags
module
pn
public void logIfExportedForIllegalAccess(java.lang.Class<?>, java.lang.Class<?>, java.util.function.Supplier<java.lang.String>);
descriptor: (Ljava/lang/Class;Ljava/lang/Class;Ljava/util/function/Supplier;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
invokevirtual java.lang.Class.getModule:()Ljava/lang/Module;
astore 4
start local 4 1: aload 2
invokevirtual java.lang.Class.getPackageName:()Ljava/lang/String;
astore 5
start local 5 2: aload 0
aload 4
aload 5
invokevirtual jdk.internal.module.IllegalAccessLogger.isExportedForIllegalAccess:(Ljava/lang/Module;Ljava/lang/String;)Z
ifeq 6
3: aload 1
invokevirtual java.lang.Class.getModule:()Ljava/lang/Module;
astore 6
start local 6 4: getstatic jdk.internal.module.IllegalAccessLogger.JLA:Ljdk/internal/access/JavaLangAccess;
aload 4
aload 5
aload 6
invokeinterface jdk.internal.access.JavaLangAccess.isReflectivelyExported:(Ljava/lang/Module;Ljava/lang/String;Ljava/lang/Module;)Z
ifne 6
5: aload 0
aload 1
aload 3
invokeinterface java.util.function.Supplier.get:()Ljava/lang/Object;
checkcast java.lang.String
invokevirtual jdk.internal.module.IllegalAccessLogger.log:(Ljava/lang/Class;Ljava/lang/String;)V
end local 6 6: StackMap locals: java.lang.Module java.lang.String
StackMap stack:
return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljdk/internal/module/IllegalAccessLogger;
0 7 1 caller Ljava/lang/Class<*>;
0 7 2 target Ljava/lang/Class<*>;
0 7 3 whatSupplier Ljava/util/function/Supplier<Ljava/lang/String;>;
1 7 4 targetModule Ljava/lang/Module;
2 7 5 targetPackage Ljava/lang/String;
4 6 6 callerModule Ljava/lang/Module;
Signature: (Ljava/lang/Class<*>;Ljava/lang/Class<*>;Ljava/util/function/Supplier<Ljava/lang/String;>;)V
MethodParameters:
Name Flags
caller
target
whatSupplier
public void logIfOpenedForIllegalAccess(java.lang.Class<?>, java.lang.Class<?>, java.util.function.Supplier<java.lang.String>);
descriptor: (Ljava/lang/Class;Ljava/lang/Class;Ljava/util/function/Supplier;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
invokevirtual java.lang.Class.getModule:()Ljava/lang/Module;
astore 4
start local 4 1: aload 2
invokevirtual java.lang.Class.getPackageName:()Ljava/lang/String;
astore 5
start local 5 2: aload 0
aload 4
aload 5
invokevirtual jdk.internal.module.IllegalAccessLogger.isOpenForIllegalAccess:(Ljava/lang/Module;Ljava/lang/String;)Z
ifeq 6
3: aload 1
invokevirtual java.lang.Class.getModule:()Ljava/lang/Module;
astore 6
start local 6 4: getstatic jdk.internal.module.IllegalAccessLogger.JLA:Ljdk/internal/access/JavaLangAccess;
aload 4
aload 5
aload 6
invokeinterface jdk.internal.access.JavaLangAccess.isReflectivelyOpened:(Ljava/lang/Module;Ljava/lang/String;Ljava/lang/Module;)Z
ifne 6
5: aload 0
aload 1
aload 3
invokeinterface java.util.function.Supplier.get:()Ljava/lang/Object;
checkcast java.lang.String
invokevirtual jdk.internal.module.IllegalAccessLogger.log:(Ljava/lang/Class;Ljava/lang/String;)V
end local 6 6: StackMap locals: java.lang.Module java.lang.String
StackMap stack:
return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljdk/internal/module/IllegalAccessLogger;
0 7 1 caller Ljava/lang/Class<*>;
0 7 2 target Ljava/lang/Class<*>;
0 7 3 whatSupplier Ljava/util/function/Supplier<Ljava/lang/String;>;
1 7 4 targetModule Ljava/lang/Module;
2 7 5 targetPackage Ljava/lang/String;
4 6 6 callerModule Ljava/lang/Module;
Signature: (Ljava/lang/Class<*>;Ljava/lang/Class<*>;Ljava/util/function/Supplier<Ljava/lang/String;>;)V
MethodParameters:
Name Flags
caller
target
whatSupplier
public void logIfOpenedForIllegalAccess(java.lang.invoke.MethodHandles$Lookup, java.lang.Class<?>);
descriptor: (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/Class;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=9, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokevirtual java.lang.Class.getModule:()Ljava/lang/Module;
astore 3
start local 3 1: aload 2
invokevirtual java.lang.Class.getPackageName:()Ljava/lang/String;
astore 4
start local 4 2: aload 0
aload 3
aload 4
invokevirtual jdk.internal.module.IllegalAccessLogger.isOpenForIllegalAccess:(Ljava/lang/Module;Ljava/lang/String;)Z
ifeq 12
3: aload 1
invokevirtual java.lang.invoke.MethodHandles$Lookup.lookupClass:()Ljava/lang/Class;
astore 5
start local 5 4: aload 5
invokevirtual java.lang.Class.getModule:()Ljava/lang/Module;
astore 6
start local 6 5: getstatic jdk.internal.module.IllegalAccessLogger.JLA:Ljdk/internal/access/JavaLangAccess;
aload 3
aload 4
aload 6
invokeinterface jdk.internal.access.JavaLangAccess.isReflectivelyOpened:(Ljava/lang/Module;Ljava/lang/String;Ljava/lang/Module;)Z
ifne 12
6: aload 0
aload 5
invokevirtual jdk.internal.module.IllegalAccessLogger.codeSource:(Ljava/lang/Class;)Ljava/net/URL;
astore 7
start local 7 7: aload 7
ifnonnull 10
8: aload 5
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
astore 8
start local 8 9: goto 11
end local 8 10: StackMap locals: jdk.internal.module.IllegalAccessLogger java.lang.invoke.MethodHandles$Lookup java.lang.Class java.lang.Module java.lang.String java.lang.Class java.lang.Module java.net.URL
StackMap stack:
new java.lang.StringBuilder
dup
aload 5
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " ("
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 7
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 8
start local 8 11: StackMap locals: java.lang.String
StackMap stack:
aload 0
aload 5
aload 2
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
aload 8
aload 2
invokedynamic get(Ljava/lang/String;Ljava/lang/Class;)Ljava/util/function/Supplier;
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;
jdk/internal/module/IllegalAccessLogger.lambda$0(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/String; (6)
()Ljava/lang/String;
invokevirtual jdk.internal.module.IllegalAccessLogger.log:(Ljava/lang/Class;Ljava/lang/String;Ljava/util/function/Supplier;)V
end local 8 end local 7 end local 6 end local 5 12: StackMap locals: jdk.internal.module.IllegalAccessLogger java.lang.invoke.MethodHandles$Lookup java.lang.Class java.lang.Module java.lang.String
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Ljdk/internal/module/IllegalAccessLogger;
0 13 1 caller Ljava/lang/invoke/MethodHandles$Lookup;
0 13 2 target Ljava/lang/Class<*>;
1 13 3 targetModule Ljava/lang/Module;
2 13 4 targetPackage Ljava/lang/String;
4 12 5 callerClass Ljava/lang/Class<*>;
5 12 6 callerModule Ljava/lang/Module;
7 12 7 url Ljava/net/URL;
9 10 8 source Ljava/lang/String;
11 12 8 source Ljava/lang/String;
Signature: (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/Class<*>;)V
MethodParameters:
Name Flags
caller
target
private void log(java.lang.Class<?>, java.lang.String);
descriptor: (Ljava/lang/Class;Ljava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
aload 0
aload 1
aload 2
invokedynamic get(Ljdk/internal/module/IllegalAccessLogger;Ljava/lang/Class;Ljava/lang/String;)Ljava/util/function/Supplier;
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;
jdk/internal/module/IllegalAccessLogger.lambda$1(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/String; (7)
()Ljava/lang/String;
invokevirtual jdk.internal.module.IllegalAccessLogger.log:(Ljava/lang/Class;Ljava/lang/String;Ljava/util/function/Supplier;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/internal/module/IllegalAccessLogger;
0 2 1 caller Ljava/lang/Class<*>;
0 2 2 what Ljava/lang/String;
Signature: (Ljava/lang/Class<*>;Ljava/lang/String;)V
MethodParameters:
Name Flags
caller
what
private void log(java.lang.Class<?>, java.lang.String, java.util.function.Supplier<java.lang.String>);
descriptor: (Ljava/lang/Class;Ljava/lang/String;Ljava/util/function/Supplier;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield jdk.internal.module.IllegalAccessLogger.mode:Ljdk/internal/module/IllegalAccessLogger$Mode;
getstatic jdk.internal.module.IllegalAccessLogger$Mode.ONESHOT:Ljdk/internal/module/IllegalAccessLogger$Mode;
if_acmpne 12
1: ldc Ljdk/internal/module/IllegalAccessLogger;
dup
astore 4
monitorenter
2: getstatic jdk.internal.module.IllegalAccessLogger.logger:Ljdk/internal/module/IllegalAccessLogger;
ifnonnull 5
3: aload 4
monitorexit
4: return
5: StackMap locals: java.lang.Class
StackMap stack:
aconst_null
putstatic jdk.internal.module.IllegalAccessLogger.logger:Ljdk/internal/module/IllegalAccessLogger;
6: aload 4
monitorexit
7: goto 10
StackMap locals:
StackMap stack: java.lang.Throwable
8: aload 4
monitorexit
9: athrow
10: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.module.IllegalAccessLogger.warningStream:Ljava/io/PrintStream;
aload 0
aload 1
aload 3
invokevirtual jdk.internal.module.IllegalAccessLogger.loudWarning:(Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
11: return
12: StackMap locals:
StackMap stack:
getstatic jdk.internal.module.IllegalAccessLogger$StackWalkerHolder.INSTANCE:Ljava/lang/StackWalker;
aload 0
invokedynamic apply(Ljdk/internal/module/IllegalAccessLogger;)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;
jdk/internal/module/IllegalAccessLogger.lambda$2(Ljava/util/stream/Stream;)Ljava/util/List; (7)
(Ljava/util/stream/Stream;)Ljava/util/List;
invokevirtual java.lang.StackWalker.walk:(Ljava/util/function/Function;)Ljava/lang/Object;
checkcast java.util.List
astore 4
start local 4 13: new jdk.internal.module.IllegalAccessLogger$Usage
dup
aload 2
aload 0
aload 4
invokevirtual jdk.internal.module.IllegalAccessLogger.hash:(Ljava/util/List;)I
invokespecial jdk.internal.module.IllegalAccessLogger$Usage.<init>:(Ljava/lang/String;I)V
astore 5
start local 5 14: aload 0
dup
astore 7
monitorenter
15: aload 0
getfield jdk.internal.module.IllegalAccessLogger.callerToUsages:Ljava/util/Map;
aload 1
invokedynamic apply()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;
jdk/internal/module/IllegalAccessLogger.lambda$4(Ljava/lang/Class;)Ljdk/internal/module/IllegalAccessLogger$Usages; (6)
(Ljava/lang/Class;)Ljdk/internal/module/IllegalAccessLogger$Usages;
invokeinterface java.util.Map.computeIfAbsent:(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
checkcast jdk.internal.module.IllegalAccessLogger$Usages
aload 5
invokevirtual jdk.internal.module.IllegalAccessLogger$Usages.add:(Ljdk/internal/module/IllegalAccessLogger$Usage;)Z
istore 6
start local 6 16: aload 7
monitorexit
17: goto 20
end local 6 StackMap locals: jdk.internal.module.IllegalAccessLogger java.lang.Class java.lang.String java.util.function.Supplier java.util.List jdk.internal.module.IllegalAccessLogger$Usage top jdk.internal.module.IllegalAccessLogger
StackMap stack: java.lang.Throwable
18: aload 7
monitorexit
19: athrow
start local 6 20: StackMap locals: jdk.internal.module.IllegalAccessLogger java.lang.Class java.lang.String java.util.function.Supplier java.util.List jdk.internal.module.IllegalAccessLogger$Usage int
StackMap stack:
iload 6
ifeq 27
21: aload 3
invokeinterface java.util.function.Supplier.get:()Ljava/lang/Object;
checkcast java.lang.String
astore 7
start local 7 22: aload 0
getfield jdk.internal.module.IllegalAccessLogger.mode:Ljdk/internal/module/IllegalAccessLogger$Mode;
getstatic jdk.internal.module.IllegalAccessLogger$Mode.DEBUG:Ljdk/internal/module/IllegalAccessLogger$Mode;
if_acmpne 26
23: new java.lang.StringBuilder
dup
aload 7
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
astore 8
start local 8 24: aload 4
aload 8
invokedynamic accept(Ljava/lang/StringBuilder;)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
jdk/internal/module/IllegalAccessLogger.lambda$5(Ljava/lang/StringBuilder;Ljava/lang/StackWalker$StackFrame;)V (6)
(Ljava/lang/StackWalker$StackFrame;)V
invokeinterface java.util.List.forEach:(Ljava/util/function/Consumer;)V
25: aload 8
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 7
end local 8 26: StackMap locals: java.lang.String
StackMap stack:
aload 0
getfield jdk.internal.module.IllegalAccessLogger.warningStream:Ljava/io/PrintStream;
aload 7
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
end local 7 27: StackMap locals:
StackMap stack:
return
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 28 0 this Ljdk/internal/module/IllegalAccessLogger;
0 28 1 caller Ljava/lang/Class<*>;
0 28 2 what Ljava/lang/String;
0 28 3 msgSupplier Ljava/util/function/Supplier<Ljava/lang/String;>;
13 28 4 stack Ljava/util/List<Ljava/lang/StackWalker$StackFrame;>;
14 28 5 u Ljdk/internal/module/IllegalAccessLogger$Usage;
16 18 6 added Z
20 28 6 added Z
22 27 7 msg Ljava/lang/String;
24 26 8 sb Ljava/lang/StringBuilder;
Exception table:
from to target type
2 4 8 any
5 7 8 any
8 9 8 any
15 17 18 any
18 19 18 any
Signature: (Ljava/lang/Class<*>;Ljava/lang/String;Ljava/util/function/Supplier<Ljava/lang/String;>;)V
MethodParameters:
Name Flags
caller
what
msgSupplier
private java.net.URL codeSource(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Ljava/net/URL;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=5, args_size=2
start local 0 start local 1 0: aload 1
dup
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
pop
invokedynamic run(Ljava/lang/Class;)Ljava/security/PrivilegedAction;
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;
java/lang/Class.getProtectionDomain()Ljava/security/ProtectionDomain; (5)
()Ljava/security/ProtectionDomain;
astore 2
start local 2 1: aload 2
invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
checkcast java.security.ProtectionDomain
invokevirtual java.security.ProtectionDomain.getCodeSource:()Ljava/security/CodeSource;
astore 4
start local 4 2: aload 4
ifnull 3
aload 4
invokevirtual java.security.CodeSource.getLocation:()Ljava/net/URL;
goto 4
StackMap locals: jdk.internal.module.IllegalAccessLogger java.lang.Class java.security.PrivilegedAction top java.security.CodeSource
StackMap stack:
3: aconst_null
StackMap locals:
StackMap stack: java.net.URL
4: areturn
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljdk/internal/module/IllegalAccessLogger;
0 5 1 clazz Ljava/lang/Class<*>;
1 5 2 pa Ljava/security/PrivilegedAction<Ljava/security/ProtectionDomain;>;
2 5 4 cs Ljava/security/CodeSource;
Signature: (Ljava/lang/Class<*>;)Ljava/net/URL;
MethodParameters:
Name Flags
clazz
private java.lang.String loudWarning(java.lang.Class<?>, java.util.function.Supplier<java.lang.String>);
descriptor: (Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: new java.util.StringJoiner
dup
invokestatic java.lang.System.lineSeparator:()Ljava/lang/String;
invokespecial java.util.StringJoiner.<init>:(Ljava/lang/CharSequence;)V
astore 3
start local 3 1: aload 3
ldc "WARNING: An illegal reflective access operation has occurred"
invokevirtual java.util.StringJoiner.add:(Ljava/lang/CharSequence;)Ljava/util/StringJoiner;
pop
2: aload 3
aload 2
invokeinterface java.util.function.Supplier.get:()Ljava/lang/Object;
checkcast java.lang.CharSequence
invokevirtual java.util.StringJoiner.add:(Ljava/lang/CharSequence;)Ljava/util/StringJoiner;
pop
3: aload 3
new java.lang.StringBuilder
dup
ldc "WARNING: Please consider reporting this to the maintainers of "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
4: aload 1
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
5: invokevirtual java.util.StringJoiner.add:(Ljava/lang/CharSequence;)Ljava/util/StringJoiner;
pop
6: aload 3
ldc "WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations"
invokevirtual java.util.StringJoiner.add:(Ljava/lang/CharSequence;)Ljava/util/StringJoiner;
pop
7: aload 3
ldc "WARNING: All illegal access operations will be denied in a future release"
invokevirtual java.util.StringJoiner.add:(Ljava/lang/CharSequence;)Ljava/util/StringJoiner;
pop
8: aload 3
invokevirtual java.util.StringJoiner.toString:()Ljava/lang/String;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ljdk/internal/module/IllegalAccessLogger;
0 9 1 caller Ljava/lang/Class<*>;
0 9 2 msgSupplier Ljava/util/function/Supplier<Ljava/lang/String;>;
1 9 3 sj Ljava/util/StringJoiner;
Signature: (Ljava/lang/Class<*>;Ljava/util/function/Supplier<Ljava/lang/String;>;)Ljava/lang/String;
MethodParameters:
Name Flags
caller
msgSupplier
private boolean isJavaBase(java.lang.StackWalker$StackFrame);
descriptor: (Ljava/lang/StackWalker$StackFrame;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface java.lang.StackWalker$StackFrame.getDeclaringClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getModule:()Ljava/lang/Module;
astore 2
start local 2 1: ldc "java.base"
aload 2
invokevirtual java.lang.Module.getName:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/internal/module/IllegalAccessLogger;
0 2 1 frame Ljava/lang/StackWalker$StackFrame;
1 2 2 caller Ljava/lang/Module;
MethodParameters:
Name Flags
frame
private int hash(java.util.List<java.lang.StackWalker$StackFrame>);
descriptor: (Ljava/util/List;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=2
start local 0 start local 1 0: iconst_0
istore 2
start local 2 1: aload 1
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 7
StackMap locals: jdk.internal.module.IllegalAccessLogger java.util.List int top java.util.Iterator
StackMap stack:
2: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.StackWalker$StackFrame
astore 3
start local 3 3: bipush 31
iload 2
imul
iconst_3
anewarray java.lang.Object
dup
iconst_0
aload 3
invokeinterface java.lang.StackWalker$StackFrame.getDeclaringClass:()Ljava/lang/Class;
aastore
dup
iconst_1
4: aload 3
invokeinterface java.lang.StackWalker$StackFrame.getMethodName:()Ljava/lang/String;
aastore
dup
iconst_2
5: aload 3
invokeinterface java.lang.StackWalker$StackFrame.getByteCodeIndex:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
6: invokestatic java.util.Objects.hash:([Ljava/lang/Object;)I
iadd
istore 2
end local 3 7: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
8: iload 2
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ljdk/internal/module/IllegalAccessLogger;
0 9 1 stack Ljava/util/List<Ljava/lang/StackWalker$StackFrame;>;
1 9 2 hash I
3 7 3 frame Ljava/lang/StackWalker$StackFrame;
Signature: (Ljava/util/List<Ljava/lang/StackWalker$StackFrame;>;)I
MethodParameters:
Name Flags
stack
private static java.lang.String lambda$0(java.lang.String, java.lang.Class);
descriptor: (Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/String;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=2, args_size=2
0: new java.lang.StringBuilder
dup
ldc "WARNING: Illegal reflective access using Lookup on "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
1: ldc " to "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
2: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
3: areturn
LocalVariableTable:
Start End Slot Name Signature
private java.lang.String lambda$1(java.lang.Class, java.lang.String);
descriptor: (Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/String;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=3, locals=5, args_size=3
start local 0 0: aload 0
aload 1
invokevirtual jdk.internal.module.IllegalAccessLogger.codeSource:(Ljava/lang/Class;)Ljava/net/URL;
astore 3
start local 3 1: aload 1
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
astore 4
start local 4 2: aload 3
ifnull 4
3: new java.lang.StringBuilder
dup
aload 4
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 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 4
4: StackMap locals: java.net.URL java.lang.String
StackMap stack:
new java.lang.StringBuilder
dup
ldc "WARNING: Illegal reflective access by "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " to "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 4 end local 3 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljdk/internal/module/IllegalAccessLogger;
1 5 3 url Ljava/net/URL;
2 5 4 source Ljava/lang/String;
private java.util.List lambda$2(java.util.stream.Stream);
descriptor: (Ljava/util/stream/Stream;)Ljava/util/List;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 1
aload 0
invokedynamic test(Ljdk/internal/module/IllegalAccessLogger;)Ljava/util/function/Predicate;
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;)Z
jdk/internal/module/IllegalAccessLogger.isJavaBase(Ljava/lang/StackWalker$StackFrame;)Z (7)
(Ljava/lang/StackWalker$StackFrame;)Z
invokeinterface java.util.stream.Stream.dropWhile:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
1: ldc 32
invokeinterface java.util.stream.Stream.limit:(J)Ljava/util/stream/Stream;
2: invokestatic java.util.stream.Collectors.toList:()Ljava/util/stream/Collector;
invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
checkcast java.util.List
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/internal/module/IllegalAccessLogger;
0 3 1 s Ljava/util/stream/Stream<Ljava/lang/StackWalker$StackFrame;>;
private static jdk.internal.module.IllegalAccessLogger$Usages lambda$4(java.lang.Class);
descriptor: (Ljava/lang/Class;)Ljdk/internal/module/IllegalAccessLogger$Usages;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: new jdk.internal.module.IllegalAccessLogger$Usages
dup
invokespecial jdk.internal.module.IllegalAccessLogger$Usages.<init>:()V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 k Ljava/lang/Class<*>;
private static void lambda$5(java.lang.StringBuilder, java.lang.StackWalker$StackFrame);
descriptor: (Ljava/lang/StringBuilder;Ljava/lang/StackWalker$StackFrame;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=4, locals=2, args_size=2
start local 1 0: aload 0
invokestatic java.lang.System.lineSeparator:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
new java.lang.StringBuilder
dup
ldc "\tat "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
return
end local 1 LocalVariableTable:
Start End Slot Name Signature
0 1 1 f Ljava/lang/StackWalker$StackFrame;
}
SourceFile: "IllegalAccessLogger.java"
NestMembers:
jdk.internal.module.IllegalAccessLogger$Builder jdk.internal.module.IllegalAccessLogger$Mode jdk.internal.module.IllegalAccessLogger$StackWalkerHolder jdk.internal.module.IllegalAccessLogger$Usage jdk.internal.module.IllegalAccessLogger$Usages
InnerClasses:
public abstract StackFrame = java.lang.StackWalker$StackFrame of java.lang.StackWalker
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public Builder = jdk.internal.module.IllegalAccessLogger$Builder of jdk.internal.module.IllegalAccessLogger
public final Mode = jdk.internal.module.IllegalAccessLogger$Mode of jdk.internal.module.IllegalAccessLogger
private StackWalkerHolder = jdk.internal.module.IllegalAccessLogger$StackWalkerHolder of jdk.internal.module.IllegalAccessLogger
private Usage = jdk.internal.module.IllegalAccessLogger$Usage of jdk.internal.module.IllegalAccessLogger
private Usages = jdk.internal.module.IllegalAccessLogger$Usages of jdk.internal.module.IllegalAccessLogger