Describe the bug
I'have not (yet) managed to replicate it, but some configuration in the control panel started to flood the console with this error:
java.lang.reflect.InvocationTargetException
at java.desktop/java.awt.EventQueue.invokeAndWait(EventQueue.java:1369)
at java.desktop/java.awt.EventQueue.invokeAndWait(EventQueue.java:1344)
at java.desktop/javax.swing.SwingUtilities.invokeAndWait(SwingUtilities.java:1480)
at com.jogamp.opengl.util.AWTAnimatorImpl.display(AWTAnimatorImpl.java:98)
at com.jogamp.opengl.util.AnimatorBase.display(AnimatorBase.java:453)
at com.jogamp.opengl.util.FPSAnimator$MainTask.run(FPSAnimator.java:178)
at java.base/java.util.TimerThread.mainLoop(Timer.java:566)
at java.base/java.util.TimerThread.run(Timer.java:516)
Caused by: com.jogamp.opengl.GLException: Caught RuntimeException: java.lang.ArrayIndexOutOfBoundsException on thread AWT-EventQueue-0
at com.jogamp.opengl.GLException.newGLException(GLException.java:76)
at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1327)
at jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:1147)
at com.jogamp.opengl.awt.GLJPanel$OffscreenBackend.doPaintComponent(GLJPanel.java:2095)
at com.jogamp.opengl.awt.GLJPanel.paintComponent(GLJPanel.java:569)
at java.desktop/javax.swing.JComponent.paint(JComponent.java:1119)
at java.desktop/javax.swing.JComponent.paintToOffscreen(JComponent.java:5311)
at java.desktop/javax.swing.RepaintManager$PaintManager.paintDoubleBufferedImpl(RepaintManager.java:1657)
at java.desktop/javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java:1632)
at java.desktop/javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1570)
at java.desktop/javax.swing.RepaintManager.paint(RepaintManager.java:1337)
at java.desktop/javax.swing.JComponent._paintImmediately(JComponent.java:5259)
at java.desktop/javax.swing.JComponent.paintImmediately(JComponent.java:5069)
at java.desktop/javax.swing.RepaintManager$4.run(RepaintManager.java:879)
at java.desktop/javax.swing.RepaintManager$4.run(RepaintManager.java:862)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.desktop/javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:862)
at java.desktop/javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:835)
at com.jogamp.opengl.util.AWTAnimatorImpl$1.run(AWTAnimatorImpl.java:170)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:308)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:771)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:722)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:716)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:741)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Caused by: java.lang.RuntimeException: java.lang.ArrayIndexOutOfBoundsException
at com.marginallyclever.robotoverlord.systems.robot.robotarm.ArmRobotSystem.applySmallCartesianForceToEndEffector(ArmRobotSystem.java:173)
at com.marginallyclever.robotoverlord.systems.robot.robotarm.ArmRobotSystem.applyCartesianForceToEndEffector(ArmRobotSystem.java:138)
at com.marginallyclever.robotoverlord.systems.robot.robotarm.ArmRobotSystem.updateRobotComponent(ArmRobotSystem.java:118)
at com.marginallyclever.robotoverlord.systems.robot.robotarm.ArmRobotSystem.update(ArmRobotSystem.java:102)
at com.marginallyclever.robotoverlord.RobotOverlord.lambda$1(RobotOverlord.java:169)
at com.marginallyclever.robotoverlord.renderpanel.OpenGLRenderPanel.updateStep(OpenGLRenderPanel.java:842)
at com.marginallyclever.robotoverlord.renderpanel.OpenGLRenderPanel$1.display(OpenGLRenderPanel.java:299)
at jogamp.opengl.GLDrawableHelper.displayImpl(GLDrawableHelper.java:692)
at jogamp.opengl.GLDrawableHelper.display(GLDrawableHelper.java:674)
at com.jogamp.opengl.awt.GLJPanel$Updater.display(GLJPanel.java:1446)
at com.jogamp.opengl.awt.GLJPanel$10.run(GLJPanel.java:1521)
at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1293)
... 31 more
Caused by: java.lang.ArrayIndexOutOfBoundsException
java.lang.reflect.InvocationTargetException
at java.desktop/java.awt.EventQueue.invokeAndWait(EventQueue.java:1369)
at java.desktop/java.awt.EventQueue.invokeAndWait(EventQueue.java:1344)
at java.desktop/javax.swing.SwingUtilities.invokeAndWait(SwingUtilities.java:1480)
at com.jogamp.opengl.util.AWTAnimatorImpl.display(AWTAnimatorImpl.java:98)
at com.jogamp.opengl.util.AnimatorBase.display(AnimatorBase.java:453)
at com.jogamp.opengl.util.FPSAnimator$MainTask.run(FPSAnimator.java:178)
at java.base/java.util.TimerThread.mainLoop(Timer.java:566)
at java.base/java.util.TimerThread.run(Timer.java:516)
Caused by: com.jogamp.opengl.GLException: Caught RuntimeException: java.lang.ArrayIndexOutOfBoundsException on thread AWT-EventQueue-0
at com.jogamp.opengl.GLException.newGLException(GLException.java:76)
at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1327)
at jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:1147)
at com.jogamp.opengl.awt.GLJPanel$OffscreenBackend.doPaintComponent(GLJPanel.java:2095)
at com.jogamp.opengl.awt.GLJPanel.paintComponent(GLJPanel.java:569)
at java.desktop/javax.swing.JComponent.paint(JComponent.java:1119)
at java.desktop/javax.swing.JComponent.paintToOffscreen(JComponent.java:5311)
at java.desktop/javax.swing.RepaintManager$PaintManager.paintDoubleBufferedImpl(RepaintManager.java:1657)
at java.desktop/javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java:1632)
at java.desktop/javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1570)
at java.desktop/javax.swing.RepaintManager.paint(RepaintManager.java:1337)
at java.desktop/javax.swing.JComponent._paintImmediately(JComponent.java:5259)
at java.desktop/javax.swing.JComponent.paintImmediately(JComponent.java:5069)
at java.desktop/javax.swing.RepaintManager$4.run(RepaintManager.java:879)
at java.desktop/javax.swing.RepaintManager$4.run(RepaintManager.java:862)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.desktop/javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:862)
at java.desktop/javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:835)
at com.jogamp.opengl.util.AWTAnimatorImpl$1.run(AWTAnimatorImpl.java:170)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:308)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:771)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:722)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:716)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:741)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Caused by: java.lang.RuntimeException: java.lang.ArrayIndexOutOfBoundsException
at com.marginallyclever.robotoverlord.systems.robot.robotarm.ArmRobotSystem.applySmallCartesianForceToEndEffector(ArmRobotSystem.java:173)
at com.marginallyclever.robotoverlord.systems.robot.robotarm.ArmRobotSystem.applyCartesianForceToEndEffector(ArmRobotSystem.java:138)
at com.marginallyclever.robotoverlord.systems.robot.robotarm.ArmRobotSystem.updateRobotComponent(ArmRobotSystem.java:118)
at com.marginallyclever.robotoverlord.systems.robot.robotarm.ArmRobotSystem.update(ArmRobotSystem.java:102)
at com.marginallyclever.robotoverlord.RobotOverlord.lambda$1(RobotOverlord.java:169)
at com.marginallyclever.robotoverlord.renderpanel.OpenGLRenderPanel.updateStep(OpenGLRenderPanel.java:842)
at com.marginallyclever.robotoverlord.renderpanel.OpenGLRenderPanel$1.display(OpenGLRenderPanel.java:299)
at jogamp.opengl.GLDrawableHelper.displayImpl(GLDrawableHelper.java:692)
at jogamp.opengl.GLDrawableHelper.display(GLDrawableHelper.java:674)
at com.jogamp.opengl.awt.GLJPanel$Updater.display(GLJPanel.java:1446)
at com.jogamp.opengl.awt.GLJPanel$10.run(GLJPanel.java:1521)
at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1293)
... 31 more
Caused by: java.lang.ArrayIndexOutOfBoundsException
This blocked the renderer, causing the app to become unresponsive.
If the condition that lead to this could be fixed that would be great, otherwise I suggest a message box for the user with indication on how to proceed. Maybe an artificial trigger to the "Go to home" button.
Describe the bug I'have not (yet) managed to replicate it, but some configuration in the control panel started to flood the console with this error:
This blocked the renderer, causing the app to become unresponsive. If the condition that lead to this could be fixed that would be great, otherwise I suggest a message box for the user with indication on how to proceed. Maybe an artificial trigger to the "Go to home" button.