Zoinkwiz / quest-helper

Helps with Quests.
BSD 2-Clause "Simplified" License
236 stars 415 forks source link

Uncaught exception crashing client #1849

Open dosmond opened 2 days ago

dosmond commented 2 days ago

My client is crashing while questing. When I looked through the runelite logs I found the following exception being thrown at crashtime

2024-11-22 16:59:40 MST [Client] WARN  n.runelite.client.eventbus.EventBus - Uncaught exception in event subscriber
java.util.ConcurrentModificationException: null
    at java.base/java.util.ArrayList.forEach(Unknown Source)
    at com.questhelper.panel.QuestOverviewPanel.updateSteps(QuestOverviewPanel.java:321)
    at com.questhelper.panel.QuestHelperPanel.updateSteps(QuestHelperPanel.java:588)
    at com.questhelper.managers.QuestManager.handleSelectedQuest(QuestManager.java:157)
    at com.questhelper.managers.QuestManager.updateQuestState(QuestManager.java:130)
    at com.questhelper.QuestHelperPlugin.onGameTick(QuestHelperPlugin.java:264)
    at net.runelite.client.eventbus.EventBus$Subscriber.invoke(EventBus.java:70)
    at net.runelite.client.eventbus.EventBus.post(EventBus.java:223)
    at net.runelite.client.callback.Hooks.tick(Hooks.java:220)
    at client.ke(client.java:19485)
    at client.bu(client.java)
    at bo.am(bo.java:391)
    at bo.iz(bo.java)
    at bo.run(bo.java:9213)
    at java.base/java.lang.Thread.run(Unknown Source)

Here is a list of the plugins that I have installed for more information

2024-11-22 16:58:57 MST [RuneLite] INFO  n.r.c.e.ExternalPluginManager - Loading external plugin "quest-helper" jar "tNdXGCLxKenXrITVEm784dUsL0llJAQ3fLSXVrwZwtc"
2024-11-22 16:58:58 MST [RuneLite] INFO  n.r.c.e.ExternalPluginManager - Loading external plugin "117hd" jar "ErRy5OOGkh8_1Tk29N0aYPx_S4IDj8HhHWu5PGgJnlA"
2024-11-22 16:58:58 MST [RuneLite] INFO  n.r.c.e.ExternalPluginManager - Loading external plugin "loot-lookup" jar "TLo34GGfkBteoGSe_mrFDJtKFCop3aFnLj6YOiBkORI"
2024-11-22 16:58:58 MST [RuneLite] INFO  n.r.c.e.ExternalPluginManager - Loading external plugin "optimal-quest-guide" jar "VDxdS2gUaZUJa1R2bvO3KLFxl0Vj3_n8tkRMkq1p-Wo"
2024-11-22 16:58:58 MST [RuneLite] INFO  n.r.c.e.ExternalPluginManager - Loading external plugin "banked-experience" jar "9ev0ksJx00kF8bZjqztnNiSZgUv0Kuq_y-ruVGrIV84"
2024-11-22 16:58:58 MST [RuneLite] INFO  n.r.c.e.ExternalPluginManager - Loading external plugin "wasted-bank-space" jar "2n06oQx_vmjv8SUQ4KpvzWYGOelvF6wT_Gg_AKm-fr8"
2024-11-22 16:58:58 MST [RuneLite] INFO  n.r.c.e.ExternalPluginManager - Loading external plugin "skills-tab-progress-bars" jar "I5rUsca3beN_1hTFnmKw6kjEZlgWInMcByN7W7BWdDY"
2024-11-22 16:58:58 MST [RuneLite] INFO  n.r.c.e.ExternalPluginManager - Loading external plugin "roof-toggle" jar "xLRydK3wEhHhrPTU6w-uRm65poM2NKueTNQVrkh-jUs"
2024-11-22 16:58:58 MST [RuneLite] INFO  n.r.c.e.ExternalPluginManager - Loading external plugin "improved-tile-indicators" jar "RabPLabNBc_8RjwbOCpC_gRCRgdlPEu-QhTgJabmbuY"
2024-11-22 16:58:58 MST [RuneLite] INFO  n.r.c.e.ExternalPluginManager - Loading external plugin "hd-minimap" jar "1bghDXEXjEz82vWTk1xw-TpDcC1ONL664kP5-VGxlY0"
2024-11-22 16:58:58 MST [RuneLite] INFO  n.r.c.e.ExternalPluginManager - Loading external plugin "shortest-path" jar "7BQ5gOI0zTQfshgiVzNgkLEzXbkdCpaq-bNhBWMj9yU"
2024-11-22 16:58:58 MST [RuneLite] INFO  n.r.c.e.ExternalPluginManager - Loading external plugin "equipment-inspector" jar "gPZPKHGcTOZ1urA--j5xU4bPcu2y_jazEWz-TOBFACk"
2024-11-22 16:58:58 MST [RuneLite] INFO  n.r.c.e.ExternalPluginManager - Loading external plugin "wikisync" jar "SSA_DqjccHKXwaduYVokhe-hZVRyCxAP3uCNdwM23Ag"
2024-11-22 16:58:58 MST [RuneLite] INFO  n.r.c.e.ExternalPluginManager - Loading external plugin "not-enough-runes" jar "-exu9M6_g8uqQTjVUTU2qQE8AAz22dlrwIywwR-WWCU"
pajlada commented 2 days ago

Are you doing anything special while it crashes? e.g. is it happening right as you select a quest, or right when you continue to another step, or something else?

dosmond commented 2 days ago

It happens quite a lot when entering cities but in general it's quite random. There doesn't seem to be a pattern to it I can nail down unfortunately.

dosmond commented 1 day ago

It crashed again with a different exception. This may or may not be related to this plugin but it mentions the Quest Overview Panel so I'm taking a guess

2024-11-23 07:50:55 MST [AWT-EventQueue-0] ERROR net.runelite.client.RuneLite - Uncaught exception:
java.lang.NullPointerException: null
    at java.desktop/javax.swing.BoxLayout.checkRequests(Unknown Source)
    at java.desktop/javax.swing.BoxLayout.minimumLayoutSize(Unknown Source)
    at java.desktop/java.awt.Container.minimumSize(Unknown Source)
    at java.desktop/java.awt.Container.getMinimumSize(Unknown Source)
    at java.desktop/javax.swing.JComponent.getMinimumSize(Unknown Source)
    at java.desktop/java.awt.BorderLayout.minimumLayoutSize(Unknown Source)
    at java.desktop/java.awt.Container.minimumSize(Unknown Source)
    at java.desktop/java.awt.Container.getMinimumSize(Unknown Source)
    at java.desktop/javax.swing.JComponent.getMinimumSize(Unknown Source)
    at java.desktop/javax.swing.BoxLayout.checkRequests(Unknown Source)
    at java.desktop/javax.swing.BoxLayout.preferredLayoutSize(Unknown Source)
    at java.desktop/java.awt.Container.preferredSize(Unknown Source)
    at java.desktop/java.awt.Container.getPreferredSize(Unknown Source)
    at java.desktop/javax.swing.JComponent.getPreferredSize(Unknown Source)
    at com.questhelper.panel.QuestOverviewPanel.getPreferredSize(QuestOverviewPanel.java:638)
    at java.desktop/java.awt.BorderLayout.layoutContainer(Unknown Source)
    at java.desktop/java.awt.Container.layout(Unknown Source)
    at java.desktop/java.awt.Container.doLayout(Unknown Source)
    at java.desktop/java.awt.Container.validateTree(Unknown Source)
    at java.desktop/java.awt.Container.validateTree(Unknown Source)
    at java.desktop/java.awt.Container.validateTree(Unknown Source)
    at java.desktop/java.awt.Container.validateTree(Unknown Source)
    at java.desktop/java.awt.Container.validateTree(Unknown Source)
    at java.desktop/java.awt.Container.validateTree(Unknown Source)
    at java.desktop/java.awt.Container.validateTree(Unknown Source)
    at java.desktop/java.awt.Container.validateTree(Unknown Source)
    at java.desktop/java.awt.Container.validate(Unknown Source)
    at java.desktop/javax.swing.RepaintManager$3.run(Unknown Source)
    at java.desktop/javax.swing.RepaintManager$3.run(Unknown Source)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
    at java.desktop/javax.swing.RepaintManager.validateInvalidComponents(Unknown Source)
    at java.desktop/javax.swing.RepaintManager$ProcessingRunnable.run(Unknown Source)
    at java.desktop/java.awt.event.InvocationEvent.dispatch(Unknown Source)
    at java.desktop/java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
    at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
    at java.desktop/java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.desktop/java.awt.EventDispatchThread.run(Unknown Source)
2024-11-23 07:50:55 MST [AWT-EventQueue-0] ERROR net.runelite.client.RuneLite - Uncaught exception:
java.lang.NullPointerException: null
    at java.desktop/javax.swing.BoxLayout.preferredLayoutSize(Unknown Source)
    at java.desktop/java.awt.Container.preferredSize(Unknown Source)
    at java.desktop/java.awt.Container.getPreferredSize(Unknown Source)
    at java.desktop/javax.swing.JComponent.getPreferredSize(Unknown Source)
    at com.questhelper.panel.QuestOverviewPanel.getPreferredSize(QuestOverviewPanel.java:638)
    at java.desktop/java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
    at java.desktop/java.awt.Container.preferredSize(Unknown Source)
    at java.desktop/java.awt.Container.getPreferredSize(Unknown Source)
    at java.desktop/javax.swing.JComponent.getPreferredSize(Unknown Source)
    at com.questhelper.panel.FixedWidthPanel.getPreferredSize(FixedWidthPanel.java:36)
    at java.desktop/javax.swing.ScrollPaneLayout.layoutContainer(Unknown Source)
    at java.desktop/java.awt.Container.layout(Unknown Source)
    at java.desktop/java.awt.Container.doLayout(Unknown Source)
    at java.desktop/java.awt.Container.validateTree(Unknown Source)
    at java.desktop/java.awt.Container.validate(Unknown Source)
    at java.desktop/javax.swing.JViewport.validateView(Unknown Source)
    at java.desktop/javax.swing.JViewport.scrollRectToVisible(Unknown Source)
    at java.desktop/javax.swing.JComponent.scrollRectToVisible(Unknown Source)
    at java.desktop/javax.swing.JComponent.scrollRectToVisible(Unknown Source)
    at java.desktop/javax.swing.JComponent.scrollRectToVisible(Unknown Source)
    at java.desktop/javax.swing.JComponent.scrollRectToVisible(Unknown Source)
    at java.desktop/javax.swing.JComponent.scrollRectToVisible(Unknown Source)
    at java.desktop/javax.swing.JComponent.scrollRectToVisible(Unknown Source)
    at java.desktop/javax.swing.JComponent.scrollRectToVisible(Unknown Source)
    at java.desktop/javax.swing.JComponent.scrollRectToVisible(Unknown Source)
    at java.desktop/javax.swing.text.DefaultCaret.adjustVisibility(Unknown Source)
    at com.formdev.flatlaf.ui.FlatCaret.adjustVisibility(FlatCaret.java:140)
    at java.desktop/javax.swing.text.DefaultCaret.repaintNewCaret(Unknown Source)
    at java.desktop/javax.swing.text.DefaultCaret$1.run(Unknown Source)
    at java.desktop/java.awt.event.InvocationEvent.dispatch(Unknown Source)
    at java.desktop/java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
    at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
    at java.desktop/java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.desktop/java.awt.EventDispatchThread.run(Unknown Source)
2024-11-23 07:50:55 MST [AWT-EventQueue-0] ERROR net.runelite.client.RuneLite - Uncaught exception:
java.lang.NullPointerException: null
    at java.desktop/javax.swing.BoxLayout.preferredLayoutSize(Unknown Source)
    at java.desktop/java.awt.Container.preferredSize(Unknown Source)
    at java.desktop/java.awt.Container.getPreferredSize(Unknown Source)
    at java.desktop/javax.swing.JComponent.getPreferredSize(Unknown Source)
    at com.questhelper.panel.QuestOverviewPanel.getPreferredSize(QuestOverviewPanel.java:638)
    at java.desktop/java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
    at java.desktop/java.awt.Container.preferredSize(Unknown Source)
    at java.desktop/java.awt.Container.getPreferredSize(Unknown Source)
    at java.desktop/javax.swing.JComponent.getPreferredSize(Unknown Source)
    at com.questhelper.panel.FixedWidthPanel.getPreferredSize(FixedWidthPanel.java:36)
    at java.desktop/javax.swing.ScrollPaneLayout.layoutContainer(Unknown Source)
    at java.desktop/java.awt.Container.layout(Unknown Source)
    at java.desktop/java.awt.Container.doLayout(Unknown Source)
    at java.desktop/java.awt.Container.validateTree(Unknown Source)
    at java.desktop/java.awt.Container.validate(Unknown Source)
    at java.desktop/javax.swing.JViewport.validateView(Unknown Source)
    at java.desktop/javax.swing.JViewport.scrollRectToVisible(Unknown Source)
    at java.desktop/javax.swing.JComponent.scrollRectToVisible(Unknown Source)
    at java.desktop/javax.swing.JComponent.scrollRectToVisible(Unknown Source)
    at java.desktop/javax.swing.JComponent.scrollRectToVisible(Unknown Source)
    at java.desktop/javax.swing.JComponent.scrollRectToVisible(Unknown Source)
    at java.desktop/javax.swing.JComponent.scrollRectToVisible(Unknown Source)
    at java.desktop/javax.swing.JComponent.scrollRectToVisible(Unknown Source)
    at java.desktop/javax.swing.JComponent.scrollRectToVisible(Unknown Source)
    at java.desktop/javax.swing.JComponent.scrollRectToVisible(Unknown Source)
    at java.desktop/javax.swing.text.DefaultCaret.adjustVisibility(Unknown Source)
    at com.formdev.flatlaf.ui.FlatCaret.adjustVisibility(FlatCaret.java:140)
    at java.desktop/javax.swing.text.DefaultCaret.repaintNewCaret(Unknown Source)
    at java.desktop/javax.swing.text.DefaultCaret$1.run(Unknown Source)
    at java.desktop/java.awt.event.InvocationEvent.dispatch(Unknown Source)
    at java.desktop/java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
    at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
    at java.desktop/java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.desktop/java.awt.EventDispatchThread.run(Unknown Source)
2024-11-23 08:01:29 MST [Client] INFO  injected-client - cache dbRowConfigCache thrashing, enlarging to 128 entries
2024-11-23 08:39:40 MST [Client] WARN  n.r.c.ui.overlay.OverlayRenderer - Error during overlay rendering
java.lang.NullPointerException: null
    at dh.vc(dh.java:41692)
    at dh.af(dh.java:34623)
    at ji.pk(ji.java)
    at ji.getModel(ji.java:53263)
    at net.runelite.client.ui.overlay.outline.ModelOutlineRenderer.drawOutline(ModelOutlineRenderer.java:1023)
    at net.runelite.client.ui.overlay.outline.ModelOutlineRenderer.drawOutline(ModelOutlineRenderer.java:1140)
    at com.questhelper.steps.ObjectStep.makeWorldOverlayHint(ObjectStep.java:352)
    at com.questhelper.steps.ConditionalStep.makeWorldOverlayHint(ConditionalStep.java:377)
    at com.questhelper.overlays.QuestHelperWorldOverlay.render(QuestHelperWorldOverlay.java:69)
    at net.runelite.client.ui.overlay.OverlayRenderer.safeRender(OverlayRenderer.java:734)
    at net.runelite.client.ui.overlay.OverlayRenderer.renderOverlays(OverlayRenderer.java:328)
    at net.runelite.client.ui.overlay.OverlayRenderer.renderOverlayLayer(OverlayRenderer.java:235)
    at net.runelite.client.callback.Hooks.drawScene(Hooks.java:493)
    at jp.bv(jp.java:60856)
    at jp.ce(jp.java:15233)
    at jc.jz(jc.java:5093)
    at mn.mf(mn.java:11578)
    at mn.mf(mn.java:11609)
    at np.ma(np.java:11473)
    at client.km(client.java:4763)
    at client.bj(client.java:1187)
    at bo.bt(bo.java:421)
    at bo.er(bo.java)
    at bo.run(bo.java:21030)
    at java.base/java.lang.Thread.run(Unknown Source)
2024-11-23 08:39:40 MST [Client] WARN  n.r.c.ui.overlay.OverlayRenderer - Error during overlay rendering
java.lang.NullPointerException: null
    at dh.vc(dh.java:41692)
    at dh.af(dh.java:34623)
    at ji.pk(ji.java)
    at kr.rj(kr.java:3941)
    at kr.getClickbox(kr.java:24402)
    at com.questhelper.steps.ObjectStep.renderArrow(ObjectStep.java:391)
    at com.questhelper.steps.DetailedQuestStep.makeWorldArrowOverlayHint(DetailedQuestStep.java:345)
    at com.questhelper.steps.ConditionalStep.makeWorldArrowOverlayHint(ConditionalStep.java:386)
    at com.questhelper.overlays.QuestHelperWorldArrowOverlay.render(QuestHelperWorldArrowOverlay.java:56)
    at net.runelite.client.ui.overlay.OverlayRenderer.safeRender(OverlayRenderer.java:734)
    at net.runelite.client.ui.overlay.OverlayRenderer.renderOverlays(OverlayRenderer.java:328)
    at net.runelite.client.ui.overlay.OverlayRenderer.renderOverlayLayer(OverlayRenderer.java:235)
    at net.runelite.client.callback.Hooks.drawScene(Hooks.java:493)
    at jp.bv(jp.java:60856)
    at jp.ce(jp.java:15233)
    at jc.jz(jc.java:5093)
    at mn.mf(mn.java:11578)
    at mn.mf(mn.java:11609)
    at np.ma(np.java:11473)
    at client.km(client.java:4763)
    at client.bj(client.java:1187)
    at bo.bt(bo.java:421)
    at bo.er(bo.java)
    at bo.run(bo.java:21030)
    at java.base/java.lang.Thread.run(Unknown Source)
2024-11-23 08:39:40 MST [Client] WARN  n.r.c.ui.overlay.OverlayRenderer - Error during overlay rendering
java.lang.NullPointerException: null
pajlada commented 1 day ago

What's your OS & Java version if you know? This smells like some Linux distro + weird Java version

dosmond commented 1 day ago

OS Name Microsoft Windows 11 Pro Version 10.0.22631 Build 22631

java 22.0.2 2024-07-16 Java(TM) SE Runtime Environment (build 22.0.2+9-70)

pajlada commented 1 day ago

This would not be the first time Java 22 has been causing issues with RuneLite plugins (cc https://github.com/Zoinkwiz/quest-helper/issues/1613), could you try using Java 21 instead?

dosmond commented 1 day ago

Interesting! Yeah, I'll downgrade and let you know if things keep crashing.

dosmond commented 1 day ago

Doesn't seem to be the issue, it crashed again. For now, I'll try removing all plugins and adding them back in one by one to confirm which one is having an issue.