[英]Java 7 Swing Applet fails in the SortingFocusTraversalPolicy class with StackOverflow error
从Java 7开始,他们在SortingFocusTraversalPolicy类中添加了一个名为getComponentDownCycle的新方法。 现在我有一次又一次的StachOverflow错误。 这是stach跟踪:
java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
at com.qwe.rty.swing.container.bootstrap.AppletBootstrap.bgInit(AppletBootstrap.java:291)
at com.qwe.rty.swing.container.bootstrap.AppletBootstrap.access$1000(AppletBootstrap.java:46)
at com.qwe.rty.swing.container.bootstrap.AppletBootstrap$BgInitThread$1.run(AppletBootstrap.java:715)
at java.security.AccessController.doPrivileged(Native Method)
at com.qwe.rty.swing.container.bootstrap.AppletBootstrap$BgInitThread.run(AppletBootstrap.java:542)
Caused by: java.lang.reflect.InvocationTargetException
at java.awt.EventQueue.invokeAndWait(Unknown Source)
at java.awt.EventQueue.invokeAndWait(Unknown Source)
at javax.swing.SwingUtilities.invokeAndWait(Unknown Source)
at com.qwe.rty.swing.container.bootstrap.AppletBootstrap.bgInit(AppletBootstrap.java:212)
... 4 more
Caused by: java.lang.StackOverflowError
at sun.awt.EmbeddedFrame.getParent(Unknown Source)
at javax.swing.LayoutComparator.compare(Unknown Source)
at javax.swing.LayoutComparator.compare(Unknown Source)
at java.util.TimSort.countRunAndMakeAscending(Unknown Source)
at java.util.TimSort.sort(Unknown Source)
at java.util.TimSort.sort(Unknown Source)
at java.util.Arrays.sort(Unknown Source)
at java.util.Collections.sort(Unknown Source)
at javax.swing.SortingFocusTraversalPolicy.enumerateAndSortCycle(Unknown Source)
at javax.swing.SortingFocusTraversalPolicy.getFocusTraversalCycle(Unknown Source)
at javax.swing.SortingFocusTraversalPolicy.getFirstComponent(Unknown Source)
at javax.swing.LayoutFocusTraversalPolicy.getFirstComponent(Unknown Source)
at javax.swing.DefaultFocusManager.getFirstComponent(Unknown Source)
at javax.swing.LegacyGlueFocusTraversalPolicy.getFirstComponent(Unknown Source)
at javax.swing.LegacyGlueFocusTraversalPolicy.getDefaultComponent(Unknown Source)
at javax.swing.SortingFocusTraversalPolicy.getComponentDownCycle(Unknown Source)
at javax.swing.SortingFocusTraversalPolicy.getFirstComponent(Unknown Source)
at javax.swing.LayoutFocusTraversalPolicy.getFirstComponent(Unknown Source)
at javax.swing.DefaultFocusManager.getFirstComponent(Unknown Source)
at javax.swing.LegacyGlueFocusTraversalPolicy.getFirstComponent(Unknown Source)
at javax.swing.LegacyGlueFocusTraversalPolicy.getDefaultComponent(Unknown Source)
at javax.swing.SortingFocusTraversalPolicy.getComponentDownCycle(Unknown Source)
at javax.swing.SortingFocusTraversalPolicy.getFirstComponent(Unknown Source)
at javax.swing.LayoutFocusTraversalPolicy.getFirstComponent(Unknown Source)
at javax.swing.DefaultFocusManager.getFirstComponent(Unknown Source)
at javax.swing.LegacyGlueFocusTraversalPolicy.getFirstComponent(Unknown Source)
at javax.swing.LegacyGlueFocusTraversalPolicy.getDefaultComponent(Unknown Source)
at javax.swing.SortingFocusTraversalPolicy.getComponentDownCycle(Unknown Source)
at javax.swing.SortingFocusTraversalPolicy.getFirstComponent(Unknown Source)
at javax.swing.LayoutFocusTraversalPolicy.getFirstComponent(Unknown Source)
at javax.swing.DefaultFocusManager.getFirstComponent(Unknown Source)
at javax.swing.LegacyGlueFocusTraversalPolicy.getFirstComponent(Unknown Source)
at javax.swing.LegacyGlueFocusTraversalPolicy.getDefaultComponent(Unknown Source)
at javax.swing.SortingFocusTraversalPolicy.getComponentDownCycle(Unknown Source)
at javax.swing.SortingFocusTraversalPolicy.getFirstComponent(Unknown Source)
at javax.swing.LayoutFocusTraversalPolicy.getFirstComponent(Unknown Source)
at javax.swing.DefaultFocusManager.getFirstComponent(Unknown Source)
at javax.swing.LegacyGlueFocusTraversalPolicy.getFirstComponent(Unknown Source)
at javax.swing.LegacyGlueFocusTraversalPolicy.getDefaultComponent(Unknown Source)
at javax.swing.SortingFocusTraversalPolicy.getComponentDownCycle(Unknown Source)
at javax.swing.SortingFocusTraversalPolicy.getFirstComponent(Unknown Source)
at javax.swing.LayoutFocusTraversalPolicy.getFirstComponent(Unknown Source)
at javax.swing.DefaultFocusManager.getFirstComponent(Unknown Source)
at javax.swing.LegacyGlueFocusTraversalPolicy.getFirstComponent(Unknown Source)
at javax.swing.LegacyGlueFocusTraversalPolicy.getDefaultComponent(Unknown Source)
at javax.swing.SortingFocusTraversalPolicy.getComponentDownCycle(Unknown Source)...
似乎jre在尝试获取焦点组件时进入了无限递归。 有什么线索吗?
使用不带javax.swing.SwingUtilities.invokeAndWait(Unknown Source)的SwingUtilities.invokeLater()。 它将解决此问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.