Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

IndexOutOfBoundsException #67

Closed
leowhss opened this issue Nov 16, 2021 · 3 comments · Fixed by #68
Closed

IndexOutOfBoundsException #67

leowhss opened this issue Nov 16, 2021 · 3 comments · Fixed by #68

Comments

@leowhss
Copy link

leowhss commented Nov 16, 2021

Hello,

Ran com.gluonhq.maps.samples.mobile.MobileSample.java from maps-2.0.0-ea-4/

on Pop!_OS 21.04 and zulu11.52.13-ca-fx-jdk11.0.13-linux_x64 which has the following JavaFX

javafx.version=17.0.1
javafx.runtime.version=17.0.1+101
javafx.runtime.build=101

After zooming and panning for a short duration,

the following Exception will be repeatedly thrown:

Exception in thread "JavaFX Application Thread" java.lang.IndexOutOfBoundsException: Index -1 out of bounds for length 2
at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64)
at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70)
at java.base/jdk.internal.util.Preconditions.checkIndex(Preconditions.java:248)
at java.base/java.util.Objects.checkIndex(Objects.java:372)
at java.base/java.util.ArrayList.get(ArrayList.java:459)
at javafx.base/com.sun.javafx.collections.ObservableListWrapper.get(ObservableListWrapper.java:89)
at javafx.base/com.sun.javafx.collections.VetoableListDecorator.get(VetoableListDecorator.java:305)
at javafx.graphics/javafx.scene.Parent.updateCachedBounds(Parent.java:1704)
at javafx.graphics/javafx.scene.Parent.recomputeBounds(Parent.java:1648)
at javafx.graphics/javafx.scene.Parent.doComputeGeomBounds(Parent.java:1501)
at javafx.graphics/javafx.scene.Parent$1.doComputeGeomBounds(Parent.java:115)
at javafx.graphics/com.sun.javafx.scene.ParentHelper.computeGeomBoundsImpl(ParentHelper.java:84)
at javafx.graphics/com.sun.javafx.scene.layout.RegionHelper.superComputeGeomBoundsImpl(RegionHelper.java:78)
at javafx.graphics/com.sun.javafx.scene.layout.RegionHelper.superComputeGeomBounds(RegionHelper.java:62)
at javafx.graphics/javafx.scene.layout.Region.doComputeGeomBounds(Region.java:3355)
at javafx.graphics/javafx.scene.layout.Region$1.doComputeGeomBounds(Region.java:168)
at javafx.graphics/com.sun.javafx.scene.layout.RegionHelper.computeGeomBoundsImpl(RegionHelper.java:89)
at javafx.graphics/com.sun.javafx.scene.NodeHelper.computeGeomBounds(NodeHelper.java:116)
at javafx.graphics/javafx.scene.Node.updateGeomBounds(Node.java:3813)
at javafx.graphics/javafx.scene.Node.getGeomBounds(Node.java:3775)
at javafx.graphics/javafx.scene.Node.computeLocalBounds(Node.java:3829)
at javafx.graphics/javafx.scene.Node.updateLocalBounds(Node.java:3859)
at javafx.graphics/javafx.scene.Node.getLocalBounds(Node.java:3729)
at javafx.graphics/javafx.scene.Node.intersectsBounds(Node.java:5258)
at javafx.graphics/javafx.scene.Node$1.intersectsBounds(Node.java:558)
at javafx.graphics/com.sun.javafx.scene.NodeHelper.intersectsBounds(NodeHelper.java:263)
at javafx.graphics/javafx.scene.layout.Region.doPickNodeLocal(Region.java:3224)
at javafx.graphics/javafx.scene.layout.Region$1.doPickNodeLocal(Region.java:184)
at javafx.graphics/com.sun.javafx.scene.layout.RegionHelper.pickNodeLocalImpl(RegionHelper.java:104)
at javafx.graphics/com.sun.javafx.scene.NodeHelper.pickNodeLocal(NodeHelper.java:129)
at javafx.graphics/javafx.scene.Node.pickNode(Node.java:5168)
at javafx.graphics/javafx.scene.Scene$MouseHandler.pickNode(Scene.java:4040)
at javafx.graphics/javafx.scene.Scene.pick(Scene.java:2058)
at javafx.graphics/javafx.scene.Scene$MouseHandler.process(Scene.java:3850)
at javafx.graphics/javafx.scene.Scene.processMouseEvent(Scene.java:1878)
at javafx.graphics/javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2623)
at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:411)
at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:301)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$2(GlassViewEventHandler.java:450)
at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:424)
at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:449)
at javafx.graphics/com.sun.glass.ui.View.handleMouseEvent(View.java:557)
at javafx.graphics/com.sun.glass.ui.View.notifyMouse(View.java:943)
at javafx.graphics/com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
at javafx.graphics/com.sun.glass.ui.gtk.GtkApplication.lambda$runLoop$11(GtkApplication.java:290)
at java.base/java.lang.Thread.run(Thread.java:829)

Thanks,

Sean

@rjolly
Copy link
Contributor

rjolly commented Apr 27, 2022

Same here. Both on 16.0.1 and 18.0.1.

@rjolly
Copy link
Contributor

rjolly commented Apr 28, 2022

Cc @abhinayagarwal @jperedadnr

@rjolly
Copy link
Contributor

rjolly commented Apr 28, 2022

It looks like something ought to be done on the JavaFX Application Thread, which is currently not:

https://stackoverflow.com/questions/56090082/how-to-fix-indexoutofbounds-exception-when-javafx-recomputes-parent-node-bounds

rjolly added a commit to rjolly/maps that referenced this issue May 3, 2022
rjolly added a commit to rjolly/maps that referenced this issue May 9, 2022
rjolly added a commit to rjolly/maps that referenced this issue May 9, 2022
jperedadnr pushed a commit that referenced this issue May 22, 2022
* Fix IndexOutOfBoundsException

Fixes #67

* Update copyright
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants