-
Bug
-
Resolution: Fixed
-
P2
-
8
-
b43
-
x86
-
generic
-
Verified
The test case below throws unexpected security exception when run with SecurityManager:
import java.awt.Dialog;
import java.awt.Frame;
import java.util.Timer;
import java.util.TimerTask;
/*
@test
@bug 7080109
@summary Dialog.show() lacks doPrivileged() to access system event queue.
@author ###@###.###: area=awt.dialog
@run main/othervm/policy=java.policy -Djava.security.manager ModalDialogPermission
*/
public final class ModalDialogPermission {
public static void main(final String[] args) {
Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
@Override
public void uncaughtException(final Thread t, final Throwable e) {
throw new RuntimeException(e);
}
});
final Frame frame = new Frame();
final Dialog dialog = new Dialog(frame, "ModalDialog", true);
final Timer t = new Timer();
t.schedule(new TimerTask() {
@Override
public void run() {
dialog.setVisible(false);
dialog.dispose();
}
}, 3000L);
dialog.show();
frame.dispose();
t.cancel();
}
}
java.security.AccessControlException: access denied ("java.awt.AWTPermission" "replaceKeyboardFocusManager")
at java.security.AccessControlContext.checkPermission(AccessControlContext.java:364)
at java.security.AccessController.checkPermission(AccessController.java:555)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
at java.awt.KeyboardFocusManager.checkReplaceKFMPermission(KeyboardFocusManager.java:3119)
at java.awt.KeyboardFocusManager.setGlobalCurrentFocusCycleRoot(KeyboardFocusManager.java:1277)
at java.awt.KeyboardFocusManager.setGlobalFocusOwner(KeyboardFocusManager.java:564)
at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:524)
at java.awt.Component.dispatchEventImpl(Component.java:4737)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4691)
at sun.awt.SunToolkit$3.run(SunToolkit.java:541)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:701)
at java.awt.EventQueue.access$000(EventQueue.java:102)
at java.awt.EventQueue$3.run(EventQueue.java:662)
at java.awt.EventQueue$3.run(EventQueue.java:660)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:671)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:244)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:155)
import java.awt.Dialog;
import java.awt.Frame;
import java.util.Timer;
import java.util.TimerTask;
/*
@test
@bug 7080109
@summary Dialog.show() lacks doPrivileged() to access system event queue.
@author ###@###.###: area=awt.dialog
@run main/othervm/policy=java.policy -Djava.security.manager ModalDialogPermission
*/
public final class ModalDialogPermission {
public static void main(final String[] args) {
Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
@Override
public void uncaughtException(final Thread t, final Throwable e) {
throw new RuntimeException(e);
}
});
final Frame frame = new Frame();
final Dialog dialog = new Dialog(frame, "ModalDialog", true);
final Timer t = new Timer();
t.schedule(new TimerTask() {
@Override
public void run() {
dialog.setVisible(false);
dialog.dispose();
}
}, 3000L);
dialog.show();
frame.dispose();
t.cancel();
}
}
java.security.AccessControlException: access denied ("java.awt.AWTPermission" "replaceKeyboardFocusManager")
at java.security.AccessControlContext.checkPermission(AccessControlContext.java:364)
at java.security.AccessController.checkPermission(AccessController.java:555)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
at java.awt.KeyboardFocusManager.checkReplaceKFMPermission(KeyboardFocusManager.java:3119)
at java.awt.KeyboardFocusManager.setGlobalCurrentFocusCycleRoot(KeyboardFocusManager.java:1277)
at java.awt.KeyboardFocusManager.setGlobalFocusOwner(KeyboardFocusManager.java:564)
at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:524)
at java.awt.Component.dispatchEventImpl(Component.java:4737)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4691)
at sun.awt.SunToolkit$3.run(SunToolkit.java:541)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:701)
at java.awt.EventQueue.access$000(EventQueue.java:102)
at java.awt.EventQueue$3.run(EventQueue.java:662)
at java.awt.EventQueue$3.run(EventQueue.java:660)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:671)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:244)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:155)
- duplicates
-
JDK-7174362 [macosx] AccessControlException access denied replaceKeyboardFocusManager
-
- Closed
-
- relates to
-
JDK-7170427 setGlobalCurrentFocusCycleRoot unexpectedly throws SecurityException
-
- Closed
-