27 28 import java.io.PrintStream; 29 import java.lang.invoke.MethodHandles; 30 import java.net.URL; 31 import java.security.AccessController; 32 import java.security.CodeSource; 33 import java.security.PrivilegedAction; 34 import java.security.ProtectionDomain; 35 import java.util.HashMap; 36 import java.util.LinkedHashMap; 37 import java.util.List; 38 import java.util.Map; 39 import java.util.Objects; 40 import java.util.Set; 41 import java.util.StringJoiner; 42 import java.util.WeakHashMap; 43 import java.util.function.Supplier; 44 import java.util.stream.Collectors; 45 import static java.util.Collections.*; 46 47 import jdk.internal.misc.JavaLangAccess; 48 import jdk.internal.misc.SharedSecrets; 49 50 /** 51 * Supports logging of access to members of exported and concealed packages 52 * that are opened to code in unnamed modules for illegal access. 53 */ 54 55 public final class IllegalAccessLogger { 56 57 /** 58 * Logger modes 59 */ 60 public static enum Mode { 61 /** 62 * Prints a warning when an illegal access succeeds and then 63 * discards the logger so that there is no further output. 64 */ 65 ONESHOT, 66 /** 67 * Print warnings when illegal access succeeds 68 */ | 27 28 import java.io.PrintStream; 29 import java.lang.invoke.MethodHandles; 30 import java.net.URL; 31 import java.security.AccessController; 32 import java.security.CodeSource; 33 import java.security.PrivilegedAction; 34 import java.security.ProtectionDomain; 35 import java.util.HashMap; 36 import java.util.LinkedHashMap; 37 import java.util.List; 38 import java.util.Map; 39 import java.util.Objects; 40 import java.util.Set; 41 import java.util.StringJoiner; 42 import java.util.WeakHashMap; 43 import java.util.function.Supplier; 44 import java.util.stream.Collectors; 45 import static java.util.Collections.*; 46 47 import jdk.internal.access.JavaLangAccess; 48 import jdk.internal.access.SharedSecrets; 49 50 /** 51 * Supports logging of access to members of exported and concealed packages 52 * that are opened to code in unnamed modules for illegal access. 53 */ 54 55 public final class IllegalAccessLogger { 56 57 /** 58 * Logger modes 59 */ 60 public static enum Mode { 61 /** 62 * Prints a warning when an illegal access succeeds and then 63 * discards the logger so that there is no further output. 64 */ 65 ONESHOT, 66 /** 67 * Print warnings when illegal access succeeds 68 */ |