jdk/test/java/lang/System/LoggerFinder/internal/PlatformLoggerBridgeTest/PlatformLoggerBridgeTest.java
equal
deleted
inserted
replaced
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); |