<AWT Dev> Reviewer needed - fix for regression test java/awt/Insets/WindowWithWarningTest/WindowWithWarningTest

Pavel Tisnovsky ptisnovs at redhat.com
Fri Dec 3 01:38:25 PST 2010


Joe Darcy wrote:
> Pavel Tisnovsky wrote:
>> Anthony Petrov wrote:
>>  
>>> 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.SecurityManager at 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.
>>>     
>>
>> The same behaviour could be also reported on unpatched JTreg Harness 4.0.
>>
>> (so it's just another reason to update JTreg harness to 4.1 on
>> IcedTea6 ;)
>>   
> 
> Yes, I've been happily using jtreg 4.1 since it was released earlier
> this year and my published OpenJDK 6 regression test results since them
> have used this version of jtreg.

Hi Joe,

I've found that this test also failed on your test machine - the
following message were copied from your results available at
http://blogs.sun.com/darcy/resource/OpenJDK_6/b20-jdk-linux-summary.txt:

java/awt/Insets/WindowWithWarningTest/WindowWithWarningTest.html
                                           Failed. Execution failed:
Applet thread threw exception: java.lang.RuntimeException: Exception
java.security.AccessControlException: access denied
(java.awt.AWTPermission createRobot)

>From my point of view it's still worth to patch this test as its failure
is probably not caused by bug in jtreg 4.0 ;-)

Best regards,
Pavel



More information about the jdk6-dev mailing list