assertj / assertj/assertj-swing

Failures due to stopped timers in org.fest.swing.monitor.Windows

Đang mở
#32 1 bình luận 0 reaction 0 người được giao Xem trên GitHub
bug Critical import from fest-swing
Ngôn ngữ chính
Java
Star
121
Fork
52
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Mô tả

_Issue by **[Martin Ginkel](http://jira.codehaus.org/secure/ViewProfile.jspa?name=mginkel)** from Tue, 18 May 2010 04:07:14 -0500_
_Originally opened as http://jira.codehaus.org/browse/FEST-346_

---

After the start of some GUI test an exception occurs (stacktrace below) and repeats a couple of times.

As far as I can tell, my test has no problems. At that point it is opening and closing

modal dialogs that display a progress-spinner in front of the main UI.

The problem happened 3 times on our CI system but is not reliably reproducable

(the other test runs were just fine).

The timer-thread that is apparently cancelled here, can only get to this state by being finalize()ed.

This is very strange, if the org.fest.swing.monitor.Windows is still alive. The junit test has just started, is working with a Robot.robotWithNewAwtHierarchy() within the first @Test method.


java.lang.IllegalStateException: Timer already cancelled.

at java.util.Timer.sched(Timer.java:354)
at java.util.Timer.schedule(Timer.java:170)
at org.fest.swing.monitor.Windows.markAsShowing(Windows.java:100)
at org.fest.swing.monitor.ContextMonitor.recognizeAsOpenWindow(ContextMonitor.java:92)
at org.fest.swing.monitor.ContextMonitor.processEvent(ContextMonitor.java:83)
at org.fest.swing.monitor.ContextMonitor.eventDispatched(ContextMonitor.java:64)
at org.fest.swing.listener.WeakEventListener.eventDispatched(WeakEventListener.java:80)
at java.awt.Toolkit$SelectiveAWTEventListener.eventDispatched(Toolkit.java:2353)
at java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Toolkit.java:2244)
at java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Toolkit.java:2244)
at java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Toolkit.java:2244)
at java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Toolkit.java:2244)
at java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Toolkit.java:2244)
at java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Toolkit.java:2244)
at java.awt.Toolkit.notifyAWTEventListeners(Toolkit.java:2203)
at java.awt.Component.dispatchEventImpl(Component.java:4528)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:178)
at java.awt.Dialog$1.run(Dialog.java:1046)
at java.awt.Dialog$3.run(Dialog.java:1098)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Dialog.show(Dialog.java:1096)
at java.awt.Component.show(Component.java:1563)
at java.awt.Component.setVisible(Component.java:1515)
at java.awt.Window.setVisible(Window.java:842)
at java.awt.Dialog.setVisible(Dialog.java:986)
at genedata.screener.common.awt.BusyProgressDialog$2.run(BusyProgressDialog.java:119)
at genedata.util.threads.Threads.invokeInEDTAndWait(Threads.java:129)
at genedata.screener.common.awt.BusyProgressDialog.showDialog(BusyProgressDialog.java:115)
at genedata.screener.common.awt.DefaultProcessingHandler.showModalDialogAndWait(DefaultProcessingHandler.java:347)
at genedata.screener.common.awt.DefaultProcessingHandler.access$500(DefaultProcessingHandler.java:59)
at genedata.screener.common.awt.DefaultProcessingHandler$4.run(DefaultProcessingHandler.java:279)
at genedata.util.threads.Threads.invokeInEDTAndWait(Threads.java:129)
at genedata.screener.common.awt.DefaultProcessingHandler.runWithProgress(DefaultProcessingHandler.java:265)
at genedata.screener.common.awt.DefaultProcessingHandler.runWithSpinner(DefaultProcessingHandler.java:196)
at genedata.screener.common.gui.definition.EditExperimentWizardState.setCorporateIdentifierAndLoadAnnotationSchemes(EditExperimentWizardState.java:245)
at genedata.screener.aa.mgmnt.io.RawDataLoadingContext$1.promptForTarget(RawDataLoadingContext.java:74)
at genedata.screener.aa.mgmnt.io.IOManager.doLoad(IOManager.java:297)
at genedata.screener.aa.mgmnt.io.IOManager.loadExperimentData(IOManager.java:171)
at genedata.screener.aa.mgmnt.io.IOManager.loadRawData(IOManager.java:167)
at genedata.screener.aa.gui.actions.LoadExperimentDataFromFileAction.handledActionPerformed(LoadExperimentDataFromFileAction.java:28)
at genedata.screener.common.awt.actions.AbstractHandledAction.actionPerformed(AbstractHandledAction.java:31)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.AbstractButton.doClick(AbstractButton.java:357)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1223)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1264)
at java.awt.Component.processMouseEvent(Component.java:6263)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6028)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4630)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

---

votes (original issue): 0
watches (original issue): 0

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Hướng nghiên cứu

Bắt đầu với org.fest.swing.monitor.Windows.markAsShowing, sau đó lần theo các lệnh gọi ContextMonitor được hiển thị trong stack trace. Điều tra cách timer chuyển sang trạng thái đã bị hủy trong khi Windows vẫn còn hoạt động, và sử dụng kịch bản đã được báo cáo với hộp thoại modal và spinner tiến trình để tái hiện lỗi. Hoàn thành khi bài kiểm thử GUI không còn ném ra hoặc lặp lại Timer already cancelled exception.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
java
Lĩnh vực
desktop, testing-qa
Loại issue
Lỗi
Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Cần làm rõ
Mức phù hợp với người mới
35/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.