./test/java/awt/KeyboardFocusmanager/DefaultPolicyChange/DefaultPolicyChange_Swing.java

Print this page
rev 6162 : 8004693: TEST_BUG: java/awt/KeyboardFocusmanager/DefaultPolicyChange/DefaultPolicyChange_Swing.java fails

@@ -1,8 +1,31 @@
 /*
+ * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
   @test
-  @bug 6741526
+  @bug 6741526 8004693
   @summary KeyboardFocusManager.setDefaultFocusTraversalPolicy(FocusTraversalPolicy) affects created components
   @library ../../regtesthelpers
   @build Sysout
   @author Andrei Dmitriev : area=awt-focus
   @run main DefaultPolicyChange_Swing

@@ -10,25 +33,24 @@
 
 import java.awt.*;
 import javax.swing.*;
 import javax.swing.table.DefaultTableModel;
 import test.java.awt.regtesthelpers.Sysout;
+import sun.awt.SunToolkit;
 
 public class DefaultPolicyChange_Swing {
     public static void main(String []s) {
         EventQueue.invokeLater(new Runnable(){
-            public void run (){
+            public void run() {
                 DefaultPolicyChange_Swing.runTestSwing();
             }
         });
+        ((SunToolkit) SunToolkit.getDefaultToolkit()).realSync();
     }
     private static void runTestSwing(){
         KeyboardFocusManager currentKFM = KeyboardFocusManager.getCurrentKeyboardFocusManager();
-        FocusTraversalPolicy defaultFTP = currentKFM.getDefaultFocusTraversalPolicy();
-        ContainerOrderFocusTraversalPolicy newFTP = new ContainerOrderFocusTraversalPolicy();
 
-
         JFrame jf = new JFrame("Test1");
         JWindow jw = new JWindow(jf);
         JDialog jd = new JDialog(jf);
         JPanel jp1 = new JPanel();
         JButton jb1 = new JButton("jb1");

@@ -46,24 +68,31 @@
             !(jd.getFocusTraversalPolicy() instanceof LayoutFocusTraversalPolicy))
         {
             throw new RuntimeException("Failure! Swing toplevel must have LayoutFocusTraversalPolicy installed");
         }
 
+        FocusTraversalPolicy[] defaultFTP = {jf.getFocusTraversalPolicy(),
+            jw.getFocusTraversalPolicy(), jd.getFocusTraversalPolicy()};
+
         jf.setVisible(true);
 
         System.out.println("Now will set another policy.");
+        ContainerOrderFocusTraversalPolicy newFTP = new ContainerOrderFocusTraversalPolicy();
         currentKFM.setDefaultFocusTraversalPolicy(newFTP);
 
-        FocusTraversalPolicy resultFTP = jw.getFocusTraversalPolicy();
+        FocusTraversalPolicy[] resultFTP = {jf.getFocusTraversalPolicy(),
+            jw.getFocusTraversalPolicy(), jd.getFocusTraversalPolicy()};
 
         System.out.println("FTP current on jf= " + jf.getFocusTraversalPolicy());
         System.out.println("FTP current on jw= " + jw.getFocusTraversalPolicy());
         System.out.println("FTP current on jd= " + jd.getFocusTraversalPolicy());
 
-        if (!resultFTP.equals(defaultFTP)) {
+        for (int i=0; i < 3; i++) {
+            if (!resultFTP[i].equals(defaultFTP[i])) {
             Sysout.println("Failure! FocusTraversalPolicy should not change");
-            Sysout.println("Was: " + defaultFTP);
-            Sysout.println("Become: " + resultFTP);
+                Sysout.println("Was: " + defaultFTP[i]);
+                Sysout.println("Become: " + resultFTP[i]);
             throw new RuntimeException("Failure! FocusTraversalPolicy should not change");
         }
     }
+    }
 }