FabricMC / Enigma

This is a fork of cuchaz's Enigma, a deobfuscation/remapping tool for Java software.
GNU Lesser General Public License v3.0
426 stars 112 forks source link

NullPointerException when reloading a .jar due to GuiController.project being null #514

Open mudkipdev opened 1 year ago

mudkipdev commented 1 year ago
java.lang.NullPointerException: Cannot invoke "cuchaz.enigma.EnigmaProject.getJarIndex()" because "cuchaz.enigma.gui.Gui.getController().project" is null
    at cuchaz.enigma.gui.util.GuiUtil.getClassIcon(GuiUtil.java:148)
    at cuchaz.enigma.gui.panels.StructurePanel$StructureTreeCellRenderer.getTreeCellRendererComponent(StructurePanel.java:161)
    at java.desktop/javax.swing.plaf.basic.BasicTreeUI$NodeDimensionsHandler.getNodeDimensions(BasicTreeUI.java:3223)
    at java.desktop/javax.swing.tree.AbstractLayoutCache.getNodeDimensions(AbstractLayoutCache.java:497)
    at java.desktop/javax.swing.tree.VariableHeightLayoutCache$TreeStateNode.updatePreferredSize(VariableHeightLayoutCache.java:1344)
    at java.desktop/javax.swing.tree.VariableHeightLayoutCache$TreeStateNode.getXOrigin(VariableHeightLayoutCache.java:1127)
    at java.desktop/javax.swing.tree.VariableHeightLayoutCache$TreeStateNode.getNodeBounds(VariableHeightLayoutCache.java:1114)
    at java.desktop/javax.swing.tree.VariableHeightLayoutCache.getBounds(VariableHeightLayoutCache.java:219)
    at java.desktop/javax.swing.plaf.basic.BasicTreeUI.getPathBounds(BasicTreeUI.java:680)
    at java.desktop/javax.swing.plaf.basic.BasicTreeUI.getPathBounds(BasicTreeUI.java:673)
    at com.formdev.flatlaf.ui.FlatTreeUI.getPathBounds(FlatTreeUI.java:300)
    at java.desktop/javax.swing.plaf.basic.BasicTreeUI$Handler.valueChanged(BasicTreeUI.java:4268)
    at java.desktop/javax.swing.tree.DefaultTreeSelectionModel.fireValueChanged(DefaultTreeSelectionModel.java:650)
    at java.desktop/javax.swing.tree.DefaultTreeSelectionModel.clearSelection(DefaultTreeSelectionModel.java:589)
    at java.desktop/javax.swing.JTree.clearSelection(JTree.java:2753)
    at java.desktop/javax.swing.JTree.setModel(JTree.java:913)
    at cuchaz.enigma.gui.panels.StructurePanel.showStructure(StructurePanel.java:89)
    at cuchaz.enigma.gui.Gui.showStructure(Gui.java:377)
    at cuchaz.enigma.gui.elements.EditorTabbedPane.closeEditor(EditorTabbedPane.java:99)
    at cuchaz.enigma.gui.Gui.closeEditor(Gui.java:303)
    at cuchaz.enigma.gui.panels.EditorPanel$3.lambda$onDeleted$3(EditorPanel.java:310)
    at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318)
    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)
mudkipdev commented 1 year ago

Related to #438