Skip to content

Not on FX Thread when downloading file #9521

@Siedlerchr

Description

@Siedlerchr

JabRef version

5.8 (latest release)

Operating system

macOS

Details on version and operating system

No response

Checked with the latest development build

  • I made a backup of my libraries before testing the latest development version.
  • I have tested the latest development version and the problem persists

Steps to reproduce the behaviour

  1. Ensure that key generation is active
    grafik
  2. Add following paper
@InBook{Yuan2014,
  author    = {Yuan, Ding and Luo, Yu and Zhuang, Xin and Rodrigues, Guilherme and Zhao, Xu and Zhang, Yongle and Pranay, U and Jain, Michael and Stumm},
  booktitle = {11th USENIX Symposium on Operating Systems Design and Implementation},
  date      = {2014},
  title     = {Simple testing can prevent most critical failures: an analysis of production failures in distributed data-intensive systems},
  number    = {14},
  pages     = {249--265},
  groups    = {HdM},
}
  1. Try to download from following URL: https://www.usenix.org/system/files/conference/osdi14/osdi14-paper-yuan.pdf
  2. See
    java.lang.IllegalStateException: Not on FX application thread; currentThread = pool-1-thread-3
    ...
    	at javafx.controls@19/javafx.scene.control.skin.LabeledSkinBase.updateChildren(LabeledSkinBase.java:289)
    ...
    at javafx.base@19/javafx.beans.property.StringProperty.setValue(StringProperty.java:71)
     at org.jabref@100.0.0/org.jabref.model.entry.LinkedFile.setFileType(LinkedFile.java:78)
     at org.jabref@100.0.0/org.jabref.gui.fieldeditors.LinkedFileViewModel.lambda$prepareDownloadTask$7(LinkedFileViewModel.java:512)
     at org.jabref@100.0.0/org.jabref.gui.util.BackgroundTask$1.call(BackgroundTask.java:60)
    
Details
java.lang.IllegalStateException: Not on FX application thread; currentThread = pool-1-thread-3
	at javafx.graphics@19/com.sun.javafx.tk.Toolkit.checkFxUserThread(Toolkit.java:299)
	at javafx.graphics@19/com.sun.javafx.tk.quantum.QuantumToolkit.checkFxUserThread(QuantumToolkit.java:458)
	at javafx.graphics@19/javafx.scene.Parent$3.onProposedChange(Parent.java:474)
	at javafx.base@19/com.sun.javafx.collections.VetoableListDecorator.setAll(VetoableListDecorator.java:113)
	at javafx.base@19/com.sun.javafx.collections.VetoableListDecorator.setAll(VetoableListDecorator.java:108)
	at javafx.controls@19/javafx.scene.control.skin.LabeledSkinBase.updateChildren(LabeledSkinBase.java:289)
	at javafx.controls@19/javafx.scene.control.skin.LabeledSkinBase.lambda$new$5(LabeledSkinBase.java:194)
	at javafx.controls@19/com.sun.javafx.scene.control.LambdaMultiplePropertyChangeListenerHandler.lambda$new$1(LambdaMultiplePropertyChangeListenerHandler.java:88)
	at javafx.base@19/javafx.beans.value.WeakChangeListener.changed(WeakChangeListener.java:86)
	at javafx.base@19/com.sun.javafx.binding.ExpressionHelper$SingleChange.fireValueChangedEvent(ExpressionHelper.java:181)
	at javafx.base@19/com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:80)
	at javafx.base@19/javafx.beans.property.ObjectPropertyBase.fireValueChangedEvent(ObjectPropertyBase.java:106)
	at javafx.base@19/javafx.beans.property.ObjectPropertyBase.markInvalid(ObjectPropertyBase.java:113)
	at javafx.base@19/javafx.beans.property.ObjectPropertyBase$Listener.invalidated(ObjectPropertyBase.java:234)
	at javafx.base@19/com.sun.javafx.binding.ExpressionHelper$Generic.fireValueChangedEvent(ExpressionHelper.java:348)
	at javafx.base@19/com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:80)
	at javafx.base@19/javafx.beans.binding.ObjectBinding.invalidate(ObjectBinding.java:181)
	at javafx.base@19/com.sun.javafx.binding.BindingHelperObserver.invalidated(BindingHelperObserver.java:52)
	at javafx.base@19/com.sun.javafx.binding.ExpressionHelper$Generic.fireValueChangedEvent(ExpressionHelper.java:348)
	at javafx.base@19/com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:80)
	at javafx.base@19/javafx.beans.property.StringPropertyBase.fireValueChangedEvent(StringPropertyBase.java:104)
	at javafx.base@19/javafx.beans.property.StringPropertyBase.markInvalid(StringPropertyBase.java:111)
	at javafx.base@19/javafx.beans.property.StringPropertyBase.set(StringPropertyBase.java:145)
	at javafx.base@19/javafx.beans.property.StringPropertyBase.set(StringPropertyBase.java:50)
	at javafx.base@19/javafx.beans.property.StringProperty.setValue(StringProperty.java:71)
	at org.jabref@100.0.0/org.jabref.model.entry.LinkedFile.setFileType(LinkedFile.java:78)
	at org.jabref@100.0.0/org.jabref.gui.fieldeditors.LinkedFileViewModel.lambda$prepareDownloadTask$7(LinkedFileViewModel.java:512)
	at org.jabref@100.0.0/org.jabref.gui.util.BackgroundTask$1.call(BackgroundTask.java:60)
	at org.jabref@100.0.0/org.jabref.gui.util.BackgroundTask$3.call(BackgroundTask.java:209)
	at org.jabref@100.0.0/org.jabref.gui.util.DefaultTaskExecutor$1.call(DefaultTaskExecutor.java:161)
	at javafx.graphics@19/javafx.concurrent.Task$TaskCallable.call(Task.java:1426)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:577)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
	at java.base/java.lang.Thread.run(Thread.java:1589)

Appendix

Originally reported at https://github.com/JabRef/jabref-issue-melting-pot/issues/44

Metadata

Metadata

Assignees

Type

No type
No fields configured for issues without a type.

Projects

Status
Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions