sparrowwallet / sparrow

Desktop Bitcoin Wallet focused on security and privacy. Free and open source.
https://sparrowwallet.com/
Apache License 2.0
1.37k stars 192 forks source link

[Bug] Exception in thread "JavaFX Application Thread" #705

Open RequestPrivacy opened 2 years ago

RequestPrivacy commented 2 years ago

While browsing the log files for #696 I noticed following stack trace which casually dumped 300.000 lines of log output during roughly 2-3h:

<DATE> ERROR [JavaFX Application Thread] c.s.s.MainApp [null:-1] Exception in thread "JavaFX Application Thread"
java.lang.IndexOutOfBoundsException: Index -1 out of bounds for length 3
    at java.base/jdk.internal.util.Preconditions.outOfBounds(Unknown Source)
    at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Unknown Source)
    at java.base/jdk.internal.util.Preconditions.checkIndex(Unknown Source)
    at java.base/java.util.Objects.checkIndex(Unknown Source)
    at java.base/java.util.ArrayList.get(Unknown Source)
    at javafx.base@18/com.sun.javafx.collections.ObservableListWrapper.get(Unknown Source)
    at javafx.base@18/com.sun.javafx.collections.VetoableListDecorator.get(Unknown Source)
    at javafx.graphics@18/javafx.scene.Parent.updateCachedBounds(Unknown Source)
    at javafx.graphics@18/javafx.scene.Parent.recomputeBounds(Unknown Source)
    at javafx.graphics@18/javafx.scene.Parent.doComputeGeomBounds(Unknown Source)
    at javafx.graphics@18/javafx.scene.Parent$1.doComputeGeomBounds(Unknown Source)
    at javafx.graphics@18/com.sun.javafx.scene.ParentHelper.computeGeomBoundsImpl(Unknown Source)
    at javafx.graphics@18/com.sun.javafx.scene.layout.RegionHelper.superComputeGeomBoundsImpl(Unknown Source)
    at javafx.graphics@18/com.sun.javafx.scene.layout.RegionHelper.superComputeGeomBounds(Unknown Source)
    at javafx.graphics@18/javafx.scene.layout.Region.doComputeGeomBounds(Unknown Source)
    at javafx.graphics@18/javafx.scene.layout.Region$1.doComputeGeomBounds(Unknown Source)
    at javafx.graphics@18/com.sun.javafx.scene.layout.RegionHelper.computeGeomBoundsImpl(Unknown Source)
    at javafx.graphics@18/com.sun.javafx.scene.NodeHelper.computeGeomBounds(Unknown Source)
    at javafx.graphics@18/javafx.scene.Node.updateGeomBounds(Unknown Source)
    at javafx.graphics@18/javafx.scene.Node.getGeomBounds(Unknown Source)
    at javafx.graphics@18/javafx.scene.Node.getLocalBounds(Unknown Source)
    at javafx.graphics@18/javafx.scene.Node.updateTxBounds(Unknown Source)
    at javafx.graphics@18/javafx.scene.Node.getTransformedBounds(Unknown Source)
    at javafx.graphics@18/javafx.scene.Node.updateBounds(Unknown Source)
    at javafx.graphics@18/javafx.scene.Parent.updateBounds(Unknown Source)
    at javafx.graphics@18/javafx.scene.Parent.updateBounds(Unknown Source)
    at javafx.graphics@18/javafx.scene.Parent.updateBounds(Unknown Source)
    at javafx.graphics@18/javafx.scene.Parent.updateBounds(Unknown Source)
    at javafx.graphics@18/javafx.scene.Parent.updateBounds(Unknown Source)
    at javafx.graphics@18/javafx.scene.Parent.updateBounds(Unknown Source)
    at javafx.graphics@18/javafx.scene.Parent.updateBounds(Unknown Source)
    at javafx.graphics@18/javafx.scene.Parent.updateBounds(Unknown Source)
    at javafx.graphics@18/javafx.scene.Parent.updateBounds(Unknown Source)
    at javafx.graphics@18/javafx.scene.Parent.updateBounds(Unknown Source)
    at javafx.graphics@18/javafx.scene.Parent.updateBounds(Unknown Source)
    at javafx.graphics@18/javafx.scene.Parent.updateBounds(Unknown Source)
    at javafx.graphics@18/javafx.scene.Parent.updateBounds(Unknown Source)
    at javafx.graphics@18/javafx.scene.Scene$ScenePulseListener.pulse(Unknown Source)
    at javafx.graphics@18/com.sun.javafx.tk.Toolkit.lambda$runPulse$2(Unknown Source)
    at java.base/java.security.AccessController.doPrivileged(Unknown Source)
    at javafx.graphics@18/com.sun.javafx.tk.Toolkit.runPulse(Unknown Source)
    at javafx.graphics@18/com.sun.javafx.tk.Toolkit.firePulse(Unknown Source)
    at javafx.graphics@18/com.sun.javafx.tk.quantum.QuantumToolkit.pulse(Unknown Source)
    at javafx.graphics@18/com.sun.javafx.tk.quantum.QuantumToolkit.pulse(Unknown Source)
    at javafx.graphics@18/com.sun.javafx.tk.quantum.QuantumToolkit.pulseFromQueue(Unknown Source)
    at javafx.graphics@18/com.sun.javafx.tk.quantum.QuantumToolkit.lambda$runToolkit$11(Unknown Source)
    at javafx.graphics@18/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(Unknown Source)
    at javafx.graphics@18/com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
    at javafx.graphics@18/com.sun.glass.ui.gtk.GtkApplication.lambda$runLoop$11(Unknown Source)
    at java.base/java.lang.Thread.run(Unknown Source)

Sparrow had stopped mixing but seemed otherwise okay...after some back and forth switching between Sparrows and Github and other clients Sparrows interface went white on me and I had to close it via the window managers close button.

Still on Kubuntu 22.04 LTS running Sparrow 1.6.6

craigraw commented 2 years ago

Unfortunately this is entirely a JavaFX framework issue (no Sparrow code in that stacktrace) so we'll have to hope for a fix upstream.