JabRef / jabref

Graphical Java application for managing BibTeX and biblatex (.bib) databases
https://devdocs.jabref.org
MIT License
3.63k stars 2.59k forks source link

Linux autcomplete in journal field is on wrong thread #3133

Closed Siedlerchr closed 7 years ago

Siedlerchr commented 7 years ago

Ubuntu 16.04 Enter something in the journal field

Detail information: ``` Opening: /home/osboxes/test Opening: /home/osboxes/Documents/JABREFTEMP/references.bib Uncaught exception Occurred in Thread[AWT-EventQueue-0,6,main] java.lang.IllegalStateException: Task must only be used from the FX Application Thread at javafx.concurrent.Task.checkThread(Task.java:1218) at javafx.concurrent.Task.isRunning(Task.java:985) at org.controlsfx.control.textfield.AutoCompletionBinding.onUserInputChanged(AutoCompletionBinding.java:332) at org.controlsfx.control.textfield.AutoCompletionBinding.setUserInput(AutoCompletionBinding.java:134) at org.jabref.gui.autocompleter.AutoCompletionTextInputBinding.setUserInputText(AutoCompletionTextInputBinding.java:136) at org.jabref.gui.autocompleter.AutoCompletionTextInputBinding.lambda$new$0(AutoCompletionTextInputBinding.java:54) at com.sun.javafx.binding.ExpressionHelper$Generic.fireValueChangedEvent(ExpressionHelper.java:361) at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:81) at javafx.scene.control.TextInputControl$TextProperty.fireValueChangedEvent(TextInputControl.java:1389) at javafx.scene.control.TextInputControl$TextProperty.markInvalid(TextInputControl.java:1393) at javafx.scene.control.TextInputControl$TextProperty.controlContentHasChanged(TextInputControl.java:1332) at javafx.scene.control.TextInputControl$TextProperty.access$1600(TextInputControl.java:1300) at javafx.scene.control.TextInputControl.lambda$new$162(TextInputControl.java:139) at com.sun.javafx.binding.ExpressionHelper$SingleInvalidation.fireValueChangedEvent(ExpressionHelper.java:137) at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:81) at javafx.scene.control.TextField$TextFieldContent.delete(TextField.java:96) at javafx.scene.control.TextInputControl.replaceText(TextInputControl.java:1200) at javafx.scene.control.TextInputControl.filterAndSet(TextInputControl.java:1171) at javafx.scene.control.TextInputControl.access$900(TextInputControl.java:79) at javafx.scene.control.TextInputControl$TextProperty.doSet(TextInputControl.java:1410) at javafx.scene.control.TextInputControl$TextProperty.set(TextInputControl.java:1323) at javafx.scene.control.TextInputControl.setText(TextInputControl.java:349) at org.jabref.gui.search.GlobalSearchBar.setSearchTerm(GlobalSearchBar.java:430) at org.jabref.gui.JabRefFrame.lambda$init$1(JabRefFrame.java:627) at javax.swing.JTabbedPane.fireStateChanged(JTabbedPane.java:416) at javax.swing.JTabbedPane$ModelListener.stateChanged(JTabbedPane.java:270) at javax.swing.DefaultSingleSelectionModel.fireStateChanged(DefaultSingleSelectionModel.java:132) at javax.swing.DefaultSingleSelectionModel.setSelectedIndex(DefaultSingleSelectionModel.java:67) at javax.swing.JTabbedPane.setSelectedIndexImpl(JTabbedPane.java:616) at javax.swing.JTabbedPane.setSelectedIndex(JTabbedPane.java:591) at javax.swing.plaf.basic.BasicTabbedPaneUI$Handler.mousePressed(BasicTabbedPaneUI.java:3647) at java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:279) at java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:279) at java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:279) at java.awt.Component.processMouseEvent(Component.java:6530) at javax.swing.JComponent.processMouseEvent(JComponent.java:3324) at java.awt.Component.processEvent(Component.java:6298) at java.awt.Container.processEvent(Container.java:2236) at java.awt.Component.dispatchEventImpl(Component.java:4889) at java.awt.Container.dispatchEventImpl(Container.java:2294) at java.awt.Component.dispatchEvent(Component.java:4711) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4522) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466) at java.awt.Container.dispatchEventImpl(Container.java:2280) at java.awt.Window.dispatchEventImpl(Window.java:2746) at java.awt.Component.dispatchEvent(Component.java:4711) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758) at java.awt.EventQueue.access$500(EventQueue.java:97) at java.awt.EventQueue$3.run(EventQueue.java:709) at java.awt.EventQueue$3.run(EventQueue.java:703) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90) at java.awt.EventQueue$4.run(EventQueue.java:731) at java.awt.EventQueue$4.run(EventQueue.java:729) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80) at java.awt.EventQueue.dispatchEvent(EventQueue.java:728) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) at java.awt.EventDispatchThread.run(EventDispatchThread.java:82) Uncaught exception Occurred in Thread[AWT-EventQueue-0,6,main] java.lang.IllegalStateException: Task must only be used from the FX Application Thread at javafx.concurrent.Task.checkThread(Task.java:1218) at javafx.concurrent.Task.isRunning(Task.java:985) at org.controlsfx.control.textfield.AutoCompletionBinding.onUserInputChanged(AutoCompletionBinding.java:332) at org.controlsfx.control.textfield.AutoCompletionBinding.setUserInput(AutoCompletionBinding.java:134) at org.jabref.gui.autocompleter.AutoCompletionTextInputBinding.setUserInputText(AutoCompletionTextInputBinding.java:136) at org.jabref.gui.autocompleter.AutoCompletionTextInputBinding.lambda$new$0(AutoCompletionTextInputBinding.java:54) at com.sun.javafx.binding.ExpressionHelper$Generic.fireValueChangedEvent(ExpressionHelper.java:361) at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:81) at javafx.scene.control.TextInputControl$TextProperty.fireValueChangedEvent(TextInputControl.java:1389) at javafx.scene.control.TextInputControl$TextProperty.markInvalid(TextInputControl.java:1393) at javafx.scene.control.TextInputControl$TextProperty.controlContentHasChanged(TextInputControl.java:1332) at javafx.scene.control.TextInputControl$TextProperty.access$1600(TextInputControl.java:1300) at javafx.scene.control.TextInputControl.lambda$new$162(TextInputControl.java:139) at com.sun.javafx.binding.ExpressionHelper$SingleInvalidation.fireValueChangedEvent(ExpressionHelper.java:137) at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:81) at javafx.scene.control.TextField$TextFieldContent.delete(TextField.java:96) at javafx.scene.control.TextInputControl.replaceText(TextInputControl.java:1200) at javafx.scene.control.TextInputControl.filterAndSet(TextInputControl.java:1171) at javafx.scene.control.TextInputControl.access$900(TextInputControl.java:79) at javafx.scene.control.TextInputControl$TextProperty.doSet(TextInputControl.java:1410) at javafx.scene.control.TextInputControl$TextProperty.set(TextInputControl.java:1323) at javafx.scene.control.TextInputControl.setText(TextInputControl.java:349) at org.jabref.gui.search.GlobalSearchBar.setSearchTerm(GlobalSearchBar.java:430) at org.jabref.gui.JabRefFrame.lambda$init$1(JabRefFrame.java:627) at javax.swing.JTabbedPane.fireStateChanged(JTabbedPane.java:416) at javax.swing.JTabbedPane$ModelListener.stateChanged(JTabbedPane.java:270) at javax.swing.DefaultSingleSelectionModel.fireStateChanged(DefaultSingleSelectionModel.java:132) at javax.swing.DefaultSingleSelectionModel.setSelectedIndex(DefaultSingleSelectionModel.java:67) at javax.swing.JTabbedPane.setSelectedIndexImpl(JTabbedPane.java:616) at javax.swing.JTabbedPane.setSelectedIndex(JTabbedPane.java:591) at javax.swing.plaf.basic.BasicTabbedPaneUI$Handler.mousePressed(BasicTabbedPaneUI.java:3647) at java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:279) at java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:279) at java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:279) at java.awt.Component.processMouseEvent(Component.java:6530) at javax.swing.JComponent.processMouseEvent(JComponent.java:3324) at java.awt.Component.processEvent(Component.java:6298) at java.awt.Container.processEvent(Container.java:2236) at java.awt.Component.dispatchEventImpl(Component.java:4889) at java.awt.Container.dispatchEventImpl(Container.java:2294) at java.awt.Component.dispatchEvent(Component.java:4711) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4522) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466) at java.awt.Container.dispatchEventImpl(Container.java:2280) at java.awt.Window.dispatchEventImpl(Window.java:2746) at java.awt.Component.dispatchEvent(Component.java:4711) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758) at java.awt.EventQueue.access$500(EventQueue.java:97) at java.awt.EventQueue$3.run(EventQueue.java:709) at java.awt.EventQueue$3.run(EventQueue.java:703) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90) at java.awt.EventQueue$4.run(EventQueue.java:731) at java.awt.EventQueue$4.run(EventQueue.java:729) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80) at java.awt.EventQueue.dispatchEvent(EventQueue.java:728) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) at java.awt.EventDispatchThread.run(EventDispatchThread.java:82) ```
lenhard commented 7 years ago

Same on Windows.

lenhard commented 7 years ago

Ok, I just wanted to fix this and I have to admit that I can no longer produce the error. Maybe this was on my Win10 system (am on Win7 now) or maybe this has been fixed by something else.

@Siedlerchr Can you still reproduce this?

Siedlerchr commented 7 years ago

Hm, I no longer can reproduce this. I will try again after #3128 is merged, I am not sure if this is somehow related