Tôi có một ứng dụng JavaFX khá lớn hoạt động tốt hầu hết thời gian. Tuy nhiên, đôi khi tôi nhận được ngẫu nhiên ArrayIndexOutOfBoundsExceptions khi nhấp qua ứng dụng. Tôi không thể sao chép các lỗi và không biết khi nào chúng xuất hiện: Đôi khi tôi có thể nhấp qua ứng dụng mà không gặp bất kỳ sự cố nào và đôi khi ứng dụng gặp sự cố và ngăn xếp xuất hiện.Random ArrayIndexOutOfBoundsException trong ứng dụng JavaFX
Exception in thread "JavaFX Application Thread" java.lang.ArrayIndexOutOfBoundsException: -1
at java.util.ArrayList.elementData(ArrayList.java:418)
at java.util.ArrayList.get(ArrayList.java:431)
at javafx.scene.Parent.updateCachedBounds(Parent.java:1591)
at javafx.scene.Parent.recomputeBounds(Parent.java:1535)
at javafx.scene.Parent.impl_computeGeomBounds(Parent.java:1388)
at javafx.scene.layout.Region.impl_computeGeomBounds(Region.java:3078)
at javafx.scene.Node.updateGeomBounds(Node.java:3577)
at javafx.scene.Node.getGeomBounds(Node.java:3530)
at javafx.scene.Node.getLocalBounds(Node.java:3478)
at javafx.scene.Node.updateTxBounds(Node.java:3641)
at javafx.scene.Node.getTransformedBounds(Node.java:3424)
at javafx.scene.Node.updateBounds(Node.java:559)
at javafx.scene.Parent.updateBounds(Parent.java:1719)
at javafx.scene.Parent.updateBounds(Parent.java:1717)
at javafx.scene.Parent.updateBounds(Parent.java:1717)
at javafx.scene.Parent.updateBounds(Parent.java:1717)
at javafx.scene.Parent.updateBounds(Parent.java:1717)
at javafx.scene.Parent.updateBounds(Parent.java:1717)
at javafx.scene.Parent.updateBounds(Parent.java:1717)
at javafx.scene.Parent.updateBounds(Parent.java:1717)
at javafx.scene.Parent.updateBounds(Parent.java:1717)
at javafx.scene.Scene$ScenePulseListener.pulse(Scene.java:2404)
at com.sun.javafx.tk.Toolkit.lambda$runPulse$30(Toolkit.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.tk.Toolkit.runPulse(Toolkit.java:354)
at com.sun.javafx.tk.Toolkit.firePulse(Toolkit.java:381)
at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:510)
at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:490)
at com.sun.javafx.tk.quantum.QuantumToolkit.lambda$runToolkit$404(QuantumToolkit.java:319)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.lambda$null$148(WinApplication.java:191)
at java.lang.Thread.run(Thread.java:745)
Khi đọc stacktrace, điều duy nhất khiến tôi chú ý là lỗi thậm chí không xảy ra ở một số mã của tôi. Có ai trong số các bạn biết những vấn đề như thế này và có một ý tưởng hay không, nơi tôi có thể bắt đầu điều tra hoặc điều gì có thể gây ra vấn đề này?
Tôi đã thử nó trên JDK 1.8.0_74 (Windows 8.1 x64), JDK 1.8.0_77 (Windows 8.1 x64) và JDK 1.8.0_91 (OS X 10.11)
Bạn có cập nhật ui từ một chủ đề không phải là chuỗi ứng dụng. Có một số vấn đề tương tự trong vài ngày gần đây có liên quan đến việc cập nhật giao diện người dùng từ chuỗi không đúng. – fabian
Bạn có một stacktrace tương đương ở đây http://stackoverflow.com/questions/19769896/unexpected-arrayindexoutofboundsexception-in-javafx-application-refering-to-no có lẽ nó có thể giúp tìm ra những gì sai –
Có thể một điểm ngắt ngoại lệ sẽ giúp , bạn có thể nhảy qua từng khung trong ngăn xếp và phân tích các biến và trường để tìm gốc của vấn đề. – Caelum