assertj / assertj/assertj-swing
Failures due to stopped timers in org.fest.swing.monitor.Windows
- Lingua principale
- Java
- Stelle
- 121
- Fork
- 52
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
_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
Guida per i contributori
Apri la guida per i contributori
Direzione di ricerca
Inizia da org.fest.swing.monitor.Windows.markAsShowing, quindi segui le chiamate a ContextMonitor mostrate nello stack trace. Analizza come il timer raggiunge lo stato annullato mentre Windows rimane attivo e usa lo scenario segnalato con una finestra di dialogo modale e uno spinner di avanzamento per riprodurlo. Il lavoro è completato quando il test della GUI non genera né ripete più la Timer already cancelled exception.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- java
- Ambito
- desktop, testing-qa
- Tipo di issue
- Bug
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Da chiarire
- Idoneità per principianti
- 35/100