diff --git a/jadx-gui/src/main/java/jadx/gui/ui/codearea/AbstractCodeArea.java b/jadx-gui/src/main/java/jadx/gui/ui/codearea/AbstractCodeArea.java index 2ddff1f1f..8283e64c9 100644 --- a/jadx-gui/src/main/java/jadx/gui/ui/codearea/AbstractCodeArea.java +++ b/jadx-gui/src/main/java/jadx/gui/ui/codearea/AbstractCodeArea.java @@ -367,29 +367,33 @@ public abstract class AbstractCodeArea extends RSyntaxTextArea { contentPanel = null; // also clear internals - setIgnoreRepaint(true); - setText(""); - setEnabled(false); - setSyntaxEditingStyle(SYNTAX_STYLE_NONE); - setLinkGenerator(null); - for (MouseListener mouseListener : getMouseListeners()) { - removeMouseListener(mouseListener); - } - for (MouseMotionListener mouseMotionListener : getMouseMotionListeners()) { - removeMouseMotionListener(mouseMotionListener); - } - JPopupMenu popupMenu = getPopupMenu(); - for (PopupMenuListener popupMenuListener : popupMenu.getPopupMenuListeners()) { - popupMenu.removePopupMenuListener(popupMenuListener); - } - for (Component component : popupMenu.getComponents()) { - if (component instanceof JMenuItem) { - Action action = ((JMenuItem) component).getAction(); - if (action instanceof JNodeAction) { - ((JNodeAction) action).dispose(); + try { + setIgnoreRepaint(true); + setText(""); + setEnabled(false); + setSyntaxEditingStyle(SYNTAX_STYLE_NONE); + setLinkGenerator(null); + for (MouseListener mouseListener : getMouseListeners()) { + removeMouseListener(mouseListener); + } + for (MouseMotionListener mouseMotionListener : getMouseMotionListeners()) { + removeMouseMotionListener(mouseMotionListener); + } + JPopupMenu popupMenu = getPopupMenu(); + for (PopupMenuListener popupMenuListener : popupMenu.getPopupMenuListeners()) { + popupMenu.removePopupMenuListener(popupMenuListener); + } + for (Component component : popupMenu.getComponents()) { + if (component instanceof JMenuItem) { + Action action = ((JMenuItem) component).getAction(); + if (action instanceof JNodeAction) { + ((JNodeAction) action).dispose(); + } } } + popupMenu.removeAll(); + } catch (Throwable e) { + LOG.debug("Error on code area dispose", e); } - popupMenu.removeAll(); } } diff --git a/jadx-gui/src/main/java/jadx/gui/ui/codearea/SmaliArea.java b/jadx-gui/src/main/java/jadx/gui/ui/codearea/SmaliArea.java index d20efaf4c..0135f3919 100644 --- a/jadx-gui/src/main/java/jadx/gui/ui/codearea/SmaliArea.java +++ b/jadx-gui/src/main/java/jadx/gui/ui/codearea/SmaliArea.java @@ -136,7 +136,7 @@ public final class SmaliArea extends AbstractCodeArea { @Override public Font getFont() { - if (model == null) { + if (model == null || isDisposed()) { return super.getFont(); } return model.getFont(); @@ -144,7 +144,7 @@ public final class SmaliArea extends AbstractCodeArea { @Override public Font getFontForTokenType(int type) { - return model.getFont(); + return getFont(); } private boolean shouldUseSmaliPrinterV2() {