Hi Pavel, On 12/02/2010 03:26 PM, Pavel Tisnovsky wrote:
Could you please explain benefits of a separate .policy file over the current approach of setting the security manager directly in the test code?when the test calls System.setSecurityManager( new SecurityManager() {...} ) then the new security manager is installed, but this kind of security manager deny the AWT robot because it is the standard behaviour of applets (users usually don't want the applet to control theirs mouse and keyboard).By default there's no any security policy present, and as such the default implementation of the SecurityManager permits everything. We override the checkTopLevelWindow() specifically to make AWT think there's no toplevelwindow permission present. However, all the rest of the permissions (including the AWT robot one) must be granted. If that is not the case, I believe your testing environment picks up some customized security policy which disallows everything by default. Could you verify that please?Hi Anthony, It seems that my testing environment (its patched JTreg harness 4.0 from IcedTea6) uses restricting security manager for test which are started as applets, but only after I explicitly install the manager in the test itself. I tried the following: the test is still started as applet (using html file containing JTreg tags and options) but I simplified it to just four lines: System.out.println(System.getSecurityManager()); System.setSecurityManager(new SecurityManager()); System.out.println(System.getSecurityManager()); System.getSecurityManager().checkPermission(new AWTPermission("createRobot")); Here are result, it's copy & paste from .jtr file generated by JTreg harness with added comments which begins and ends with ***: ----------messages:(3/142)---------- command: applet WindowWithWarningTest.html reason: User specified action: run applet WindowWithWarningTest.html elapsed time (seconds): 0.59 ----------System.out:(2/40)---------- *** the first line of test: security manager is not installed yet *** null *** the third line of test: now the security manager is installed *** java.lang.securitymana...@77f297e7 *** statement on fourth line throws exception - it's not possible to create AWT robot after the security manager is installed *** ----------System.err:(8/650)---------- java.security.AccessControlException: access denied (java.awt.AWTPermission crea at java.security.AccessControlContext.checkPermission(AccessControlConte at java.security.AccessController.checkPermission(AccessController.java: at java.lang.SecurityManager.checkPermission(SecurityManager.java:549) at WindowWithWarningTest.start(WindowWithWarningTest.java:98) at com.sun.javatest.regtest.AppletWrapper$AppletRunnable.run(AppletWrapp at java.lang.Thread.run(Thread.java:636) STATUS:Failed.Applet thread threw exception: java.security.AccessControlExceptio result: Failed. Execution failed: Applet thread threw exception: java.security.A
Looks like this is a problem with your patched IcedTea jtreg harness rather than with the test itself then.
-- best regards, Anthony
