test/java/util/logging/LogManagerAppContextDeadlock.java
Print this page
*** 33,49 ****
import java.util.concurrent.Semaphore;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.logging.LogManager;
import java.util.logging.Logger;
/**
* @test
* @bug 8065991
* @summary check that when LogManager is initialized, a deadlock similar
* to that described in 8065709 will not occur.
! * @modules java.base/sun.misc
* @run main/othervm LogManagerAppContextDeadlock UNSECURE
* @run main/othervm LogManagerAppContextDeadlock SECURE
*
* @author danielfuchs
*/
--- 33,51 ----
import java.util.concurrent.Semaphore;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.logging.LogManager;
import java.util.logging.Logger;
+ import jdk.internal.misc.JavaAWTAccess;
+ import jdk.internal.misc.SharedSecrets;
/**
* @test
* @bug 8065991
* @summary check that when LogManager is initialized, a deadlock similar
* to that described in 8065709 will not occur.
! * @modules java.base/jdk.internal.misc
* @run main/othervm LogManagerAppContextDeadlock UNSECURE
* @run main/othervm LogManagerAppContextDeadlock SECURE
*
* @author danielfuchs
*/
*** 95,105 ****
return appContext;
}
}
static {
! sun.misc.SharedSecrets.setJavaAWTAccess(new sun.misc.JavaAWTAccess() {
@Override
public Object getAppletContext() {
if (numAppContexts.get() == 0) return null;
// We are in JavaAWTAccess, we can release sem and let
// FakeAppContext constructor proceeed.
--- 97,107 ----
return appContext;
}
}
static {
! SharedSecrets.setJavaAWTAccess(new JavaAWTAccess() {
@Override
public Object getAppletContext() {
if (numAppContexts.get() == 0) return null;
// We are in JavaAWTAccess, we can release sem and let
// FakeAppContext constructor proceeed.
*** 339,349 ****
this.allowAll = allowAll;
// we don't actually need any permission to create our
// FileHandlers because we're passing invalid parameters
// which will make the creation fail...
permissions = new Permissions();
! permissions.add(new RuntimePermission("accessClassInPackage.sun.misc"));
// these are used for configuring the test itself...
allPermissions = new Permissions();
allPermissions.add(new java.security.AllPermission());
--- 341,351 ----
this.allowAll = allowAll;
// we don't actually need any permission to create our
// FileHandlers because we're passing invalid parameters
// which will make the creation fail...
permissions = new Permissions();
! permissions.add(new RuntimePermission("accessClassInPackage.jdk.internal.misc"));
// these are used for configuring the test itself...
allPermissions = new Permissions();
allPermissions.add(new java.security.AllPermission());