<AWT Dev> [8] Request for approval for CR 8004693 - TEST_BUG: java/awt/KeyboardFocusmanager/DefaultPolicyChange/DefaultPolicyChange_Swing.java fails

Konstantin Shefov konstantin.shefov at oracle.com
Tue Jan 15 23:50:24 PST 2013


Hello,

Please review a fix for the issue:

8004693 - TEST_BUG: 
java/awt/KeyboardFocusmanager/DefaultPolicyChange/DefaultPolicyChange_Swing.java 
fails

The webrev is http://cr.openjdk.java.net/~kshefov/8004693/webrev.00/

This test is broken.

The test tells the AWT EventQueue to run the method 
DefaultPolicyChange_Swing.runTestSwing() (which contains all the actual 
test code) at a later time (EventQueue.invokeLater(Runnable)). By adding 
a few printlns to that function, it's easy to see that it starts to run 
but never finishes. In particular, it never reaches any of the actual 
test code.

First, "((SunToolkit) SunToolkit.getDefaultToolkit()).realSync();" 
should be added after EventQueue.invokeLater() call for all procedures 
in this call to be run.

After this test starts to fail. It fails since jdk 7 fcs.

The fail is caused because test is corrupted.

The test should compare JFrame, JWindow and JDialog 
FocusTraversalPolicies before 
"currentKFM.setDefaultFocusTraversalPolicy(newFTP)" call and after this 
call. But instead the test compares something different.

In the current variant of this test we see:

    FocusTraversalPolicy defaultFTP = 
currentKFM.getDefaultFocusTraversalPolicy();

It returns object java.awt.DefaultFocusTraversalPolicy at 5fe2d461.

But JFrame, JWindow and JDialog objects initially have 
"javax.swing.LayoutFocusTraversalPolicy at 2f81dd44" policy.
After "currentKFM.setDefaultFocusTraversalPolicy(newFTP)" call they 
still have javax.swing.LayoutFocusTraversalPolicy at 2f81dd44.

So test should not fail, but it fails.

Test needs to be fixed.

Thanks,
Konstantin




More information about the awt-dev mailing list