commit c8561ba308b74d32833dcc870ba512b79c8a261d
parent 51dffeae16f9a51c8d7260972be2d86c79fa35d3
Author: Matthias Jaros <jaros@mailbox.org>
Date: Sat, 4 Jul 2026 12:29:15 +0200
Fix memory hole in quiet mode at ProgressBar
Diffstat:
2 files changed, 10 insertions(+), 8 deletions(-)
diff --git a/src/main/java/com/it_jaros/jscanner/ProgressBar.java b/src/main/java/com/it_jaros/jscanner/ProgressBar.java
@@ -47,10 +47,12 @@ public class ProgressBar {
}
public void start() {
- if (quiet) {
- return;
+ if (!quiet) {
+ System.out.print("Scanning targets...\n\n");
}
- System.out.print("Scanning targets...\n\n");
+
+ // although we don't print anything, we still need to
+ // gc all the done hosts
ui.scheduleAtFixedRate(() -> {
lock.lock();
drawProgress(false);
@@ -76,7 +78,9 @@ public class ProgressBar {
if (!last) {
// move cursor up again
- System.out.print("\u001b[" + hosts.size() + "A");
+ if (!quiet) {
+ System.out.print("\u001b[" + hosts.size() + "A");
+ }
}
}
@@ -87,6 +91,7 @@ public class ProgressBar {
}
private void drawBar(Progress progress) {
+ if (quiet) return;
System.out.print("\u001b[2K\r"); // clear whole line
System.out.println(createBar(
progress.host(),
@@ -116,9 +121,7 @@ public class ProgressBar {
try {
ui.awaitTermination(1, TimeUnit.SECONDS);
// we need to draw one last time for the 100% to appear
- if (!quiet) {
- drawProgress(true);
- }
+ drawProgress(true);
} catch (InterruptedException ignored) {
Thread.currentThread().interrupt();
}
diff --git a/src/main/java/com/it_jaros/jscanner/Scanner.java b/src/main/java/com/it_jaros/jscanner/Scanner.java
@@ -7,7 +7,6 @@ import java.nio.charset.StandardCharsets;
import java.time.Duration;
import java.util.*;
import java.util.concurrent.*;
-import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicLong;
import java.util.concurrent.locks.LockSupport;