From 118fa98ca9ccd58c1d1ce391b51cf1a95ad68501 Mon Sep 17 00:00:00 2001 From: Skylot Date: Sun, 17 Dec 2017 13:01:23 +0300 Subject: [PATCH] gui: fix incorrect settings loading --- jadx-cli/src/main/java/jadx/cli/JadxCLI.java | 2 +- jadx-cli/src/main/java/jadx/cli/JadxCLIArgs.java | 6 ++++-- jadx-gui/src/main/java/jadx/gui/settings/JadxSettings.java | 6 ++++++ .../main/java/jadx/gui/settings/JadxSettingsAdapter.java | 1 + 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/jadx-cli/src/main/java/jadx/cli/JadxCLI.java b/jadx-cli/src/main/java/jadx/cli/JadxCLI.java index 1aed0f167..ceca627d8 100644 --- a/jadx-cli/src/main/java/jadx/cli/JadxCLI.java +++ b/jadx-cli/src/main/java/jadx/cli/JadxCLI.java @@ -11,7 +11,7 @@ import org.slf4j.LoggerFactory; public class JadxCLI { private static final Logger LOG = LoggerFactory.getLogger(JadxCLI.class); - public static void main(String[] args) throws JadxException { + public static void main(String[] args) { try { JadxCLIArgs jadxArgs = new JadxCLIArgs(); if (processArgs(jadxArgs, args)) { diff --git a/jadx-cli/src/main/java/jadx/cli/JadxCLIArgs.java b/jadx-cli/src/main/java/jadx/cli/JadxCLIArgs.java index 8d70658fe..60d12c02d 100644 --- a/jadx-cli/src/main/java/jadx/cli/JadxCLIArgs.java +++ b/jadx-cli/src/main/java/jadx/cli/JadxCLIArgs.java @@ -25,6 +25,8 @@ import com.beust.jcommander.ParameterException; public class JadxCLIArgs implements IJadxArgs { + protected static final int DEFAULT_THREADS_COUNT = Math.max(1, Runtime.getRuntime().availableProcessors() / 2); + @Parameter(description = " (.dex, .apk, .jar or .class)") protected List files; @@ -32,7 +34,7 @@ public class JadxCLIArgs implements IJadxArgs { protected String outDirName; @Parameter(names = {"-j", "--threads-count"}, description = "processing threads count") - protected int threadsCount = Math.max(1, Runtime.getRuntime().availableProcessors() / 2); + protected int threadsCount = DEFAULT_THREADS_COUNT; @Parameter(names = {"-r", "--no-res"}, description = "do not decode resources") protected boolean skipResources = false; @@ -108,7 +110,7 @@ public class JadxCLIArgs implements IJadxArgs { } try { if (threadsCount <= 0) { - throw new JadxException("Threads count must be positive"); + throw new JadxException("Threads count must be positive, got: " + threadsCount); } if (files != null) { for (String fileName : files) { diff --git a/jadx-gui/src/main/java/jadx/gui/settings/JadxSettings.java b/jadx-gui/src/main/java/jadx/gui/settings/JadxSettings.java index 7640feba5..a522aa1ff 100644 --- a/jadx-gui/src/main/java/jadx/gui/settings/JadxSettings.java +++ b/jadx-gui/src/main/java/jadx/gui/settings/JadxSettings.java @@ -43,6 +43,12 @@ public class JadxSettings extends JadxCLIArgs { JadxSettingsAdapter.store(this); } + public void fixOnLoad() { + if (threadsCount <= 0) { + threadsCount = DEFAULT_THREADS_COUNT; + } + } + public String getLastOpenFilePath() { return lastOpenFilePath; } diff --git a/jadx-gui/src/main/java/jadx/gui/settings/JadxSettingsAdapter.java b/jadx-gui/src/main/java/jadx/gui/settings/JadxSettingsAdapter.java index c9c8e08e5..e2c34dcba 100644 --- a/jadx-gui/src/main/java/jadx/gui/settings/JadxSettingsAdapter.java +++ b/jadx-gui/src/main/java/jadx/gui/settings/JadxSettingsAdapter.java @@ -50,6 +50,7 @@ public class JadxSettingsAdapter { return new JadxSettings(); } LOG.debug("Loaded settings: {}", makeString(settings)); + settings.fixOnLoad(); return settings; } catch (Exception e) { LOG.error("Error load settings", e);