623 }
624 }
625
626 // Until all JDK code converted to call sun.util.logging.PlatformLogger
627 // (see 7054233), we need to determine if Logger.getLogger is to add
628 // a system logger or user logger.
629 //
630 // As an interim solution, if the immediate caller whose caller loader is
631 // null, we assume it's a system logger and add it to the system context.
632 // These system loggers only set the resource bundle to the given
633 // resource bundle name (rather than the default system resource bundle).
634 private static class SystemLoggerHelper {
635 static boolean disableCallerCheck = getBooleanProperty("sun.util.logging.disableCallerCheck");
636 private static boolean getBooleanProperty(final String key) {
637 String s = AccessController.doPrivileged(new PrivilegedAction<String>() {
638 @Override
639 public String run() {
640 return System.getProperty(key);
641 }
642 });
643 return Boolean.valueOf(s);
644 }
645 }
646
647 private static Logger demandLogger(String name, String resourceBundleName, Class<?> caller) {
648 LogManager manager = LogManager.getLogManager();
649 if (!SystemLoggerHelper.disableCallerCheck) {
650 if (isSystem(caller.getModule())) {
651 return manager.demandSystemLogger(name, resourceBundleName, caller);
652 }
653 }
654 return manager.demandLogger(name, resourceBundleName, caller);
655 // ends up calling new Logger(name, resourceBundleName, caller)
656 // iff the logger doesn't exist already
657 }
658
659 /**
660 * Find or create a logger for a named subsystem. If a logger has
661 * already been created with the given name it is returned. Otherwise
662 * a new logger is created.
663 * <p>
|
623 }
624 }
625
626 // Until all JDK code converted to call sun.util.logging.PlatformLogger
627 // (see 7054233), we need to determine if Logger.getLogger is to add
628 // a system logger or user logger.
629 //
630 // As an interim solution, if the immediate caller whose caller loader is
631 // null, we assume it's a system logger and add it to the system context.
632 // These system loggers only set the resource bundle to the given
633 // resource bundle name (rather than the default system resource bundle).
634 private static class SystemLoggerHelper {
635 static boolean disableCallerCheck = getBooleanProperty("sun.util.logging.disableCallerCheck");
636 private static boolean getBooleanProperty(final String key) {
637 String s = AccessController.doPrivileged(new PrivilegedAction<String>() {
638 @Override
639 public String run() {
640 return System.getProperty(key);
641 }
642 });
643 return Boolean.parseBoolean(s);
644 }
645 }
646
647 private static Logger demandLogger(String name, String resourceBundleName, Class<?> caller) {
648 LogManager manager = LogManager.getLogManager();
649 if (!SystemLoggerHelper.disableCallerCheck) {
650 if (isSystem(caller.getModule())) {
651 return manager.demandSystemLogger(name, resourceBundleName, caller);
652 }
653 }
654 return manager.demandLogger(name, resourceBundleName, caller);
655 // ends up calling new Logger(name, resourceBundleName, caller)
656 // iff the logger doesn't exist already
657 }
658
659 /**
660 * Find or create a logger for a named subsystem. If a logger has
661 * already been created with the given name it is returned. Otherwise
662 * a new logger is created.
663 * <p>
|