From d6860b9992592fda41b49c9cf2bc48ee69394392 Mon Sep 17 00:00:00 2001 From: thc202 Date: Wed, 7 Jan 2026 09:53:53 +0000 Subject: [PATCH] Do not prompt when out of space and headless Disable the prompt since the GUI is not enabled. Part of #9212. Signed-off-by: thc202 --- .../org/parosproxy/paros/control/Control.java | 4 ++++ .../java/org/zaproxy/zap/utils/ErrorUtils.java | 2 +- .../org/zaproxy/zap/utils/ErrorUtilsUnitTest.java | 15 +++++++++++++++ 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/zap/src/main/java/org/parosproxy/paros/control/Control.java b/zap/src/main/java/org/parosproxy/paros/control/Control.java index 36bf81c12b5..6ac0afae17a 100644 --- a/zap/src/main/java/org/parosproxy/paros/control/Control.java +++ b/zap/src/main/java/org/parosproxy/paros/control/Control.java @@ -411,6 +411,10 @@ public static void initSingletonForTesting(Model model) { control = new Control(model, null); } + public static void setSingletonForTesting(Control control) { + Control.control = control; + } + /** * Initialises the {@code Control} singleton with the given data. * diff --git a/zap/src/main/java/org/zaproxy/zap/utils/ErrorUtils.java b/zap/src/main/java/org/zaproxy/zap/utils/ErrorUtils.java index 6d2567c2abe..a6ead16e8d2 100644 --- a/zap/src/main/java/org/zaproxy/zap/utils/ErrorUtils.java +++ b/zap/src/main/java/org/zaproxy/zap/utils/ErrorUtils.java @@ -110,7 +110,7 @@ public boolean handleDiskSpaceException(Exception e) { logAndStderr("Shutting down ZAP due to space issues..."); Control control = Control.getSingleton(); control.setExitStatus(2, errorMsg); - control.exit(false, null); + control.exit(true, null); } } diff --git a/zap/src/test/java/org/zaproxy/zap/utils/ErrorUtilsUnitTest.java b/zap/src/test/java/org/zaproxy/zap/utils/ErrorUtilsUnitTest.java index cba7b6337df..88b04ccd0f4 100644 --- a/zap/src/test/java/org/zaproxy/zap/utils/ErrorUtilsUnitTest.java +++ b/zap/src/test/java/org/zaproxy/zap/utils/ErrorUtilsUnitTest.java @@ -33,6 +33,7 @@ import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.ValueSource; import org.parosproxy.paros.Constant; +import org.parosproxy.paros.control.Control; public class ErrorUtilsUnitTest { @@ -68,6 +69,20 @@ void shouldHandleDiskSpaceException(String message) { assertThat(ErrorUtils.getOutOfDiskSpaceHandler().isOutOfSpace(), is(equalTo(true))); } + @Test + void shouldExitWhenExitOnOutOfSpaceEnabled() { + // Given + Control control = mock(); + Control.setSingletonForTesting(control); + Exception e = new Exception("Test", new Exception("Data File size limit is reached")); + ErrorUtils.getOutOfDiskSpaceHandler().setExitOnOutOfSpace(true); + // When + ErrorUtils.handleDiskSpaceException(e); + // Then + verify(control).setExitStatus(2, null); + verify(control).exit(true, null); + } + @Test void shouldIgnoreNonDiskSpaceException() { // Given