jdk/test/java/lang/System/LoggerFinder/internal/PlatformLoggerBridgeTest/PlatformLoggerBridgeTest.java
changeset 37672 03684934dc09
parent 36237 963d1115678b
child 44545 83b611b88ac8
equal deleted inserted replaced
37671:7917477e22a8 37672:03684934dc09
    47 import java.lang.System.LoggerFinder;
    47 import java.lang.System.LoggerFinder;
    48 import java.lang.System.Logger;
    48 import java.lang.System.Logger;
    49 import java.lang.System.Logger.Level;
    49 import java.lang.System.Logger.Level;
    50 import java.util.stream.Stream;
    50 import java.util.stream.Stream;
    51 import sun.util.logging.PlatformLogger;
    51 import sun.util.logging.PlatformLogger;
       
    52 import java.lang.reflect.Module;
    52 
    53 
    53 /**
    54 /**
    54  * @test
    55  * @test
    55  * @bug     8140364
    56  * @bug     8140364
    56  * @summary JDK implementation specific unit test for JDK internal artifacts.
    57  * @summary JDK implementation specific unit test for JDK internal artifacts.
    92     static final Class<?> providerClass;
    93     static final Class<?> providerClass;
    93     static {
    94     static {
    94         try {
    95         try {
    95             // Preload classes before the security manager is on.
    96             // Preload classes before the security manager is on.
    96             providerClass = ClassLoader.getSystemClassLoader().loadClass("PlatformLoggerBridgeTest$LogProducerFinder");
    97             providerClass = ClassLoader.getSystemClassLoader().loadClass("PlatformLoggerBridgeTest$LogProducerFinder");
    97             ((LoggerFinder)providerClass.newInstance()).getLogger("foo", providerClass);
    98             ((LoggerFinder)providerClass.newInstance()).getLogger("foo", providerClass.getModule());
    98         } catch (Exception ex) {
    99         } catch (Exception ex) {
    99             throw new ExceptionInInitializerError(ex);
   100             throw new ExceptionInInitializerError(ex);
   100         }
   101         }
   101     }
   102     }
   102 
   103 
   413 
   414 
   414 
   415 
   415         }
   416         }
   416 
   417 
   417         @Override
   418         @Override
   418         public Logger getLogger(String name, Class<?> caller) {
   419         public Logger getLogger(String name, Module caller) {
   419             SecurityManager sm = System.getSecurityManager();
   420             SecurityManager sm = System.getSecurityManager();
   420             if (sm != null) {
   421             if (sm != null) {
   421                 sm.checkPermission(LOGGERFINDER_PERMISSION);
   422                 sm.checkPermission(LOGGERFINDER_PERMISSION);
   422             }
   423             }
   423             PrivilegedAction<ClassLoader> pa = () -> caller.getClassLoader();
   424             PrivilegedAction<ClassLoader> pa = () -> caller.getClassLoader();
   596         final LogProducerFinder.LoggerImpl sysSink;
   597         final LogProducerFinder.LoggerImpl sysSink;
   597         boolean old = allowControl.get().get();
   598         boolean old = allowControl.get().get();
   598         allowControl.get().set(true);
   599         allowControl.get().set(true);
   599         try {
   600         try {
   600            sysSink = LogProducerFinder.LoggerImpl.class.cast(
   601            sysSink = LogProducerFinder.LoggerImpl.class.cast(
   601                         provider.getLogger("foo", Thread.class));
   602                         provider.getLogger("foo", Thread.class.getModule()));
   602         } finally {
   603         } finally {
   603             allowControl.get().set(old);
   604             allowControl.get().set(old);
   604         }
   605         }
   605 
   606 
   606         testLogger(provider, loggerDescMap, "foo", null, sysLogger1, sysSink);
   607         testLogger(provider, loggerDescMap, "foo", null, sysLogger1, sysSink);