繁体   English   中英

Java 7 Swing Applet在SortingFocusTraversalPolicy类中失败,并出现StackOverflow错误

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM