Код: Выделить всё
java.lang.IndexOutOfBoundsException: I n d e x - 1 o u t o f b o u n d s f o r l e n g t h 2 < b r / > a t j a v a . b a s e / j d k . i n t e r n a l . u t i l . P r e c o n d i t i o n s . o u t O f B o u n d s ( P r e c o n d i t i o n s . j a v a : 1 0 0 ) < b r / > a t j a v a . b a s e / j d k . i n t e r n a l . u t i l . P r e c o n d i t i o n s . o u t O f B o u n d s C h e c k I n d e x ( P r e c o n d i t i o n s . j a v a : 1 0 6 ) < b r / > a t j a v a . b a s e / j d k . i n t e r n a l . u t i l . P r e c o n d i t i o n s . c h e c k I n d e x ( P r e c o n d i t i o n s . j a v a : 3 0 2 ) < b r / > a t j a v a . b a s e / j a v a . u t i l . O b j e c t s . c h e c k I n d e x ( O b j e c t s . j a v a : 3 8 5 ) < b r / > a t j a v a . b a s e / j a v a . u t i l . A r r a y L i s t . g e t ( A r r a y L i s t . j a v a : 4 2 7 ) < b r / > a t j a v a f x . b a s e / c o m . s u n . j a v a f x . c o l l e c t i o n s . O b s e r v a b l e L i s t W r a p p e r . g e t ( O b s e r v a b l e L i s t W r a p p e r . j a v a : 8 8 ) < b r / > a t j a v a f x . b a s e / c o m . s u n . j a v a f x . c o l l e c t i o n s . V e t o a b l e L i s t D e c o r a t o r . g e t ( V e t o a b l e L i s t D e c o r a t o r . j a v a : 3 1 4 ) < b r / > a t j a v a f x . g r a p h i c s / j a v a f x . s c e n e . P a r e n t . u p d a t e C a c h e d B o u n d s ( P a r e n t . j a v a : 1 7 0 5 ) < b r / > a t j a v a f x . g r a p h i c s / j a v a f x . s c e n e . P a r e n t . r e c o m p u t e B o u n d s ( P a r e n t . j a v a : 1 6 4 9 ) < b r / > a t j a v a f x . g r a p h i c s / j a v a f x . s c e n e . P a r e n t . d o C o m p u t e G e o m B o u n d s ( P a r e n t . j a v a : 1 5 0 2 ) < b r / > a t j a v a f x . g r a p h i c s / j a v a f x . s c e n e . P a r e n t $ 1 . d o C o m p u t e G e o m B o u n d s ( P a r e n t . j a v a : 1 1 5 ) < b r / > a t j a v a f x . g r a p h i c s / c o m . s u n . j a v a f x . s c e n e . P a r e n t H e l p e r . c o m p u t e G e o m B o u n d s I m p l ( P a r e n t H e l p e r . j a v a : 8 4 ) < b r / > a t j a v a f x . g r a p h i c s / c o m . s u n . j a v a f x . s c e n e . l a y o u t . R e g i o n H e l p e r . s u p e r C o m p u t e G e o m B o u n d s I m p l ( R e g i o n H e l p e r . j a v a : 7 8 ) < b r / > a t j a v a f x . g r a p h i c s / c o m . s u n . j a v a f x . s c e n e . l a y o u t . R e g i o n H e l p e r . s u p e r C o m p u t e G e o m B o u n d s ( R e g i o n H e l p e r . j a v a : 6 2 ) < b r / > a t j a v a f x . g r a p h i c s / j a v a f x . s c e n e . l a y o u t . R e g i o n . d o C o m p u t e G e o m B o u n d s ( R e g i o n . j a v a : 3 3 0 1 ) < b r / > a t j a v a f x . g r a p h i c s / j a v a f x . s c e n e . l a y o u t . R e g i o n $ 1 . d o C o m p u t e G e o m B o u n d s ( R e g i o n . j a v a : 1 6 6 ) < b r / > a t j a v a f x . g r a p h i c s / c o m . s u n . j a v a f x . s c e n e . l a y o u t . R e g i o n H e l p e r . c o m p u t e G e o m B o u n d s I m p l ( R e g i o n H e lper.java:89)
at javafx.graphics/com.sun.javafx.scene.NodeHelper.computeGeomBounds(NodeHelper.java:117)
at javafx.graphics/javafx.scene.Node.updateGeomBounds(Node.java:3812)
at javafx.graphics/javafx.scene.Node.getGeomBounds(Node.java:3774)
at javafx.graphics/javafx.scene.Node.computeLocalBounds(Node.java:3828)
at javafx.graphics/javafx.scene.Node.updateLocalBounds(Node.java:3858)
at javafx.graphics/javafx.scene.Node.getLocalBounds(Node.java:3728)
at javafx.graphics/javafx.scene.Node.intersectsBounds(Node.java:5257)
at javafx.graphics/javafx.scene.Node$1.intersectsBounds(Node.java:558)
at javafx.graphics/com.sun.javafx.scene.NodeHelper.intersectsBounds(NodeHelper.java:264)
at javafx.graphics/javafx.scene.layout.Region.doPickNodeLocal(Region.java:3170)
at javafx.graphics/javafx.scene.layout.Region$1.doPickNodeLocal(Region.java:182)
at javafx.graphics/com.sun.javafx.scene.layout.RegionHelper.pickNodeLocalImpl(RegionHelper.java:104)
at javafx.graphics/com.sun.javafx.scene.NodeHelper.pickNodeLocal(NodeHelper.java:130)
at javafx.graphics/javafx.scene.Node.pickNode(Node.java:5167)
at javafx.graphics/javafx.scene.Parent.pickChildrenNode(Parent.java:807)
at javafx.graphics/javafx.scene.Parent$1.pickChildrenNode(Parent.java:136)
at javafx.graphics/com.sun.javafx.scene.ParentHelper.pickChildrenNode(ParentHelper.java:113)
at javafx.graphics/javafx.scene.layout.Region.doPickNodeLocal(Region.java:3172)
at javafx.graphics/javafx.scene.layout.Region$1.doPickNodeLocal(Region.java:182)
at javafx.graphics/com.sun.javafx.scene.layout.RegionHelper.pickNodeLocalImpl(RegionHelper.java:104)
at javafx.graphics/com.sun.javafx.scene.NodeHelper.pickNodeLocal(NodeHelper.java:130)
at javafx.graphics/javafx.scene.Node.pickNode(Node.java:5167)
at javafx.graphics/javafx.scene.Parent.pickChildrenNode(Parent.java:807)
at javafx.graphics/javafx.scene.Parent$1.pickChildrenNode(Parent.java:136)
at javafx.graphics/com.sun.javafx.scene.ParentHelper.pickChildrenNode(ParentHelper.java:113)
at javafx.graphics/javafx.scene.layout.Region.doPickNodeLocal(Region.java:3172)
at javafx.graphics/javafx.scene.layout.Region$1.doPickNodeLocal(Region.java:182)
at javafx.graphics/com.sun.javafx.scene.layout.RegionHelper.pickNodeLocalImpl(RegionHelper.java:104)
at javafx.graphics/com.sun.javafx.scene.NodeHelper.pickNodeLocal(NodeHelper.java:130)
at javafx.graphics/javafx.scene.Node.pickNode(Node.java:5167)
at javafx.graphics/javafx.scene.Parent.pickChildrenNode(Parent.java:807)
at javafx.graphics/javafx.scene.Parent$1.pickChildrenNode(Parent.java:136)
at javafx.graphics/com.sun.javafx.scene.ParentHelper.pickChildrenNode(ParentHelper.java:113)
at javafx.graphics/javafx.scene.layout.Region.doPickNodeLocal(Region.java:3172)
at javafx.graphics/javafx.scene.layout.Region$1.doPickNodeLocal(Region.java:182)
at javafx.graphics/com.sun.javafx.scene.layout.RegionHelper.pickNodeLocalImpl(RegionHelper.java:104)
at javafx.graphics/com.sun.javafx.scene.NodeHelper.pickNodeLocal(NodeHelper.java:130)
at javafx.graphics/javafx.scene.Node.pickNode(Node.java:5167)
at javafx.graphics/javafx.scene.Scene$MouseHandler.pickNode(Scene.java:4127)
at javafx.graphics/javafx.scene.Scene.pick(Scene.java:2070)
at javafx.graphics/javafx.scene.Scene$MouseHandler.process(Scene.java:3937)
at javafx.graphics/javafx.scene.Scene.processMouseEvent(Scene.java:1890)
at javafx.graphics/javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2708)
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(AccessController.java:400)
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:551)
at javafx.graphics/com.sun.glass.ui.View.notifyMouse(View.java:937)
at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:185)
at java.base/java.lang.Thread.run(Thread.java:1583)
Я завернул обновления пользовательского интерфейса в Platform.runLater(), использовал runAndWait(), добавил синхронизированные блоки — ничего не помогло.
Ошибка появляется только в глобальном обработчике исключений, поэтому я не могу отследить точную строку, вызывающую ее.
Это может быть связано на панель с событиями наведения/щелчка, где я динамически обновляю/сбрасываю метки.
Я не могу опубликовать полный код (более 13 тысяч строк), но видел ли кто-нибудь это раньше? Как я могу отследить или предотвратить эту ошибку?
Использование версии jdk и javafx 21 с весенней загрузкой
Подробнее здесь: https://stackoverflow.com/questions/797 ... 2im-gettin
Мобильная версия