diff --git a/jadx-core/src/main/java/jadx/api/JadxArgs.java b/jadx-core/src/main/java/jadx/api/JadxArgs.java index 5fb4c2a0d..9680cffd1 100644 --- a/jadx-core/src/main/java/jadx/api/JadxArgs.java +++ b/jadx-core/src/main/java/jadx/api/JadxArgs.java @@ -138,7 +138,7 @@ public class JadxArgs { } public void setThreadsCount(int threadsCount) { - this.threadsCount = threadsCount; + this.threadsCount = Math.max(1, threadsCount); // make sure threadsCount >= 1 } public boolean isCfgOutput() { diff --git a/jadx-gui/src/main/java/jadx/gui/settings/JadxSettingsWindow.java b/jadx-gui/src/main/java/jadx/gui/settings/JadxSettingsWindow.java index f28cf50b6..b18784b6c 100644 --- a/jadx-gui/src/main/java/jadx/gui/settings/JadxSettingsWindow.java +++ b/jadx-gui/src/main/java/jadx/gui/settings/JadxSettingsWindow.java @@ -433,8 +433,10 @@ public class JadxSettingsWindow extends JDialog { needReload(); }); - SpinnerNumberModel spinnerModel = new SpinnerNumberModel( - settings.getThreadsCount(), 1, Runtime.getRuntime().availableProcessors() * 2, 1); + // fix for #1331 + int threadsCountValue = settings.getThreadsCount(); + int threadsCountMax = Math.max(2, Math.max(threadsCountValue, Runtime.getRuntime().availableProcessors() * 2)); + SpinnerNumberModel spinnerModel = new SpinnerNumberModel(threadsCountValue, 1, threadsCountMax, 1); JSpinner threadsCount = new JSpinner(spinnerModel); threadsCount.addChangeListener(e -> { settings.setThreadsCount((Integer) threadsCount.getValue());