JFrame застревает в каком-то странном внутреннем тупике при открытии - PullRequest
0 голосов
/ 08 октября 2018

У меня есть тест, который открывает JFrame при сбое и показывает мне некоторую отладочную информацию.Обычно это работает просто отлично, но теперь я внезапно захожу в странный тупик.

Когда я нажимаю на дамп темы в IntelliJ, я получаю следующее:

`` `

java.lang.Thread.State: RUNNABLE
    at java.lang.Thread.holdsLock(Native Method)
    at java.awt.Component.checkTreeLock(Component.java:1202)
    at java.awt.Component.getSiblingIndexAbove(Component.java:9858)
    at java.awt.Component.getHWPeerAboveMe(Component.java:9890)
    at java.awt.Component.updateZOrder(Component.java:10154)
    at java.awt.Component.addNotify(Component.java:6953)
    - locked <0x00000006ce23ddd0> (a java.awt.Component$AWTTreeLock)
    at java.awt.Container.addNotify(Container.java:2762)
    - locked <0x00000006ce23ddd0> (a java.awt.Component$AWTTreeLock)
    at javax.swing.JComponent.addNotify(JComponent.java:4740)
    at java.awt.Container.addNotify(Container.java:2773)
    - locked <0x00000006ce23ddd0> (a java.awt.Component$AWTTreeLock)
    at javax.swing.JComponent.addNotify(JComponent.java:4740)
    at java.awt.Container.addNotify(Container.java:2773)
    - locked <0x00000006ce23ddd0> (a java.awt.Component$AWTTreeLock)
    at javax.swing.JComponent.addNotify(JComponent.java:4740)
    at java.awt.Container.addNotify(Container.java:2773)
    - locked <0x00000006ce23ddd0> (a java.awt.Component$AWTTreeLock)
    at javax.swing.JComponent.addNotify(JComponent.java:4740)
    at java.awt.Container.addNotify(Container.java:2773)
    - locked <0x00000006ce23ddd0> (a java.awt.Component$AWTTreeLock)
    at javax.swing.JComponent.addNotify(JComponent.java:4740)
    at java.awt.Container.addNotify(Container.java:2773)
    - locked <0x00000006ce23ddd0> (a java.awt.Component$AWTTreeLock)
    at javax.swing.JComponent.addNotify(JComponent.java:4740)
    at java.awt.Container.addNotify(Container.java:2773)
    - locked <0x00000006ce23ddd0> (a java.awt.Component$AWTTreeLock)
    at javax.swing.JComponent.addNotify(JComponent.java:4740)
    at java.awt.Container.addNotify(Container.java:2773)
    - locked <0x00000006ce23ddd0> (a java.awt.Component$AWTTreeLock)
    at javax.swing.JComponent.addNotify(JComponent.java:4740)
    at java.awt.Container.addNotify(Container.java:2773)
    - locked <0x00000006ce23ddd0> (a java.awt.Component$AWTTreeLock)
    at javax.swing.JComponent.addNotify(JComponent.java:4740)
    at java.awt.Container.addNotify(Container.java:2773)
    - locked <0x00000006ce23ddd0> (a java.awt.Component$AWTTreeLock)
    at javax.swing.JComponent.addNotify(JComponent.java:4740)
    at java.awt.Container.addNotify(Container.java:2773)
    - locked <0x00000006ce23ddd0> (a java.awt.Component$AWTTreeLock)
    at javax.swing.JComponent.addNotify(JComponent.java:4740)
    at java.awt.Container.addNotify(Container.java:2773)
    - locked <0x00000006ce23ddd0> (a java.awt.Component$AWTTreeLock)
    at javax.swing.JComponent.addNotify(JComponent.java:4740)
    at javax.swing.JRootPane.addNotify(JRootPane.java:757)
    at java.awt.Container.addNotify(Container.java:2773)
    - locked <0x00000006ce23ddd0> (a java.awt.Component$AWTTreeLock)
    at java.awt.Window.addNotify(Window.java:770)
    - locked <0x00000006ce23ddd0> (a java.awt.Component$AWTTreeLock)
    at java.awt.Frame.addNotify(Frame.java:487)
    - locked <0x00000006ce23ddd0> (a java.awt.Component$AWTTreeLock)
    at java.awt.Window.pack(Window.java:807)
    at mypackage.LogViewer.viewInFrame(LogViewer.java:380)
    at mypackage.LogViewer.viewInFrame(LogViewer.java:380)
    at mypackage.TestLogger.viewInFrame(TestLogger.java:280)
    at mythingytotest.MyTestClass(MyTestClass.java:87)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:513)
    at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:115)
    at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$6(TestMethodTestDescriptor.java:170)
    at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor$$Lambda$166/945591847.execute(Unknown Source)
    at org.junit.jupiter.engine.execution.ThrowableCollector.execute(ThrowableCollector.java:40)
    at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:166)
    at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:113)
    at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:58)
    at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor$NodeExecutor.lambda$executeRecursively$3(HierarchicalTestExecutor.java:113)
    at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor$NodeExecutor$$Lambda$112/1597249648.execute(Unknown Source)
    at org.junit.platform.engine.support.hierarchical.SingleTestExecutor.executeSafely(SingleTestExecutor.java:66)
    at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor$NodeExecutor.executeRecursively(HierarchicalTestExecutor.java:108)
    at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor$NodeExecutor.execute(HierarchicalTestExecutor.java:79)
    at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor$NodeExecutor.lambda$executeRecursively$2(HierarchicalTestExecutor.java:121)
    at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor$NodeExecutor$$Lambda$115/1694556038.accept(Unknown Source)

` ``

Нет других потоков, которыеесть мой код в них.Даже если бы там было, я не вижу, как это могло бы вызвать там взаимоблокировки.

Компонент logviewer использует только примитивы и наборы примитивов и ванильных компонентов свинга: JComboBox, JTextField, JPanel, JCheckBox

1 Ответ

0 голосов
/ 08 октября 2018

Ты за бессмысленное понижение.

В любом случае, на случай, если какая-нибудь бедная потерянная душа наткнется на что-то похожее в будущем:

На самом деле Трере не было тупика.Это было вызвано:

1) компонентом logviewer, имеющим множество событий внутри, и для его открытия потребовалось довольно много времени

2) сбой в работе Ubuntu, который сделал jframe полностью невидимым

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...