diff --git a/jadx-gui/src/main/java/jadx/gui/JadxGUI.java b/jadx-gui/src/main/java/jadx/gui/JadxGUI.java index 7c26ab65c..5856b924b 100644 --- a/jadx-gui/src/main/java/jadx/gui/JadxGUI.java +++ b/jadx-gui/src/main/java/jadx/gui/JadxGUI.java @@ -5,6 +5,7 @@ import javax.swing.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import jadx.core.utils.exceptions.JadxException; import jadx.gui.settings.JadxSettings; import jadx.gui.settings.JadxSettingsAdapter; import jadx.gui.ui.MainWindow; @@ -24,8 +25,13 @@ public class JadxGUI { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); SwingUtilities.invokeLater(new Runnable() { public void run() { - MainWindow window = new MainWindow(jadxArgs); - window.open(); + try { + MainWindow window = new MainWindow(jadxArgs); + window.open(); + } + catch(JadxException e) { + throw new RuntimeException(e); + } } }); } catch (Throwable e) { diff --git a/jadx-gui/src/main/java/jadx/gui/JadxWrapper.java b/jadx-gui/src/main/java/jadx/gui/JadxWrapper.java index a3b66bc30..406c76fe1 100644 --- a/jadx-gui/src/main/java/jadx/gui/JadxWrapper.java +++ b/jadx-gui/src/main/java/jadx/gui/JadxWrapper.java @@ -22,7 +22,7 @@ public class JadxWrapper { private final JadxDecompiler decompiler; private File openFile; - public JadxWrapper(IJadxArgs jadxArgs) { + public JadxWrapper(IJadxArgs jadxArgs) throws JadxException { this.decompiler = new JadxDecompiler(jadxArgs); } @@ -53,7 +53,7 @@ public class JadxWrapper { } progressMonitor.close(); LOG.info("done"); - } catch (InterruptedException e) { + } catch (InterruptedException|JadxException e) { LOG.error("Save interrupted", e); Thread.currentThread().interrupt(); } diff --git a/jadx-gui/src/main/java/jadx/gui/ui/MainWindow.java b/jadx-gui/src/main/java/jadx/gui/ui/MainWindow.java index f452ff6eb..42cd07034 100644 --- a/jadx-gui/src/main/java/jadx/gui/ui/MainWindow.java +++ b/jadx-gui/src/main/java/jadx/gui/ui/MainWindow.java @@ -32,6 +32,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import jadx.api.ResourceFile; +import jadx.core.utils.exceptions.JadxException; import jadx.gui.JadxWrapper; import jadx.gui.jobs.BackgroundWorker; import jadx.gui.jobs.DecompileJob; @@ -100,7 +101,7 @@ public class MainWindow extends JFrame { private transient ProgressPanel progressPane; private transient BackgroundWorker backgroundWorker; - public MainWindow(JadxSettings settings) { + public MainWindow(JadxSettings settings) throws JadxException { this.wrapper = new JadxWrapper(settings); this.settings = settings; this.cacheObject = new CacheObject(); diff --git a/jadx-gui/src/test/java/jadx/gui/treemodel/JSourcesTest.java b/jadx-gui/src/test/java/jadx/gui/treemodel/JSourcesTest.java index 9284b588c..8a248b50e 100644 --- a/jadx-gui/src/test/java/jadx/gui/treemodel/JSourcesTest.java +++ b/jadx-gui/src/test/java/jadx/gui/treemodel/JSourcesTest.java @@ -12,6 +12,7 @@ import jadx.api.JadxDecompiler; import jadx.api.JavaClass; import jadx.api.JavaPackage; import jadx.core.dex.nodes.ClassNode; +import jadx.core.utils.exceptions.JadxException; import jadx.gui.JadxWrapper; import static org.junit.Assert.assertEquals; @@ -24,7 +25,7 @@ public class JSourcesTest { private JadxDecompiler decompiler; @Before - public void init() { + public void init() throws JadxException { JRoot root = mock(JRoot.class); when(root.isFlatPackages()).thenReturn(false); JadxWrapper wrapper = mock(JadxWrapper.class);