diff --git a/jadx-gui/src/main/java/jadx/gui/jobs/BackgroundExecutor.java b/jadx-gui/src/main/java/jadx/gui/jobs/BackgroundExecutor.java index 0b0020d33..e84a12662 100644 --- a/jadx-gui/src/main/java/jadx/gui/jobs/BackgroundExecutor.java +++ b/jadx-gui/src/main/java/jadx/gui/jobs/BackgroundExecutor.java @@ -195,7 +195,11 @@ public class BackgroundExecutor { // reduce thread count and continue executor.setCorePoolSize(1); System.gc(); - UiUtils.sleep(500); // wait GC + UiUtils.sleep(1000); // wait GC + if (!UiUtils.isFreeMemoryAvailable()) { + LOG.error("Task '{}' memory limit reached (after GC), force cancel", task.getTitle()); + return TaskStatus.CANCEL_BY_MEMORY; + } } return null; };