diff --git a/client/src/main/java/org/mvndaemon/mvnd/client/DaemonParameters.java b/client/src/main/java/org/mvndaemon/mvnd/client/DaemonParameters.java
index 5945825e..c09c0423 100644
--- a/client/src/main/java/org/mvndaemon/mvnd/client/DaemonParameters.java
+++ b/client/src/main/java/org/mvndaemon/mvnd/client/DaemonParameters.java
@@ -596,7 +596,8 @@ public class DaemonParameters {
}
public boolean asBoolean() {
- return Boolean.parseBoolean(get());
+ final String val = get();
+ return "".equals(val) || Boolean.parseBoolean(val);
}
public int asInt() {
diff --git a/client/src/test/java/org/mvndaemon/mvnd/client/EnvironmentTest.java b/client/src/test/java/org/mvndaemon/mvnd/client/EnvironmentTest.java
index f7a6427c..5dca9740 100644
--- a/client/src/test/java/org/mvndaemon/mvnd/client/EnvironmentTest.java
+++ b/client/src/test/java/org/mvndaemon/mvnd/client/EnvironmentTest.java
@@ -24,6 +24,8 @@ import java.util.Map;
import java.util.Properties;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
+import org.mvndaemon.mvnd.client.DaemonParameters.EnvValue;
+import org.mvndaemon.mvnd.client.DaemonParameters.ValueSource;
import org.mvndaemon.mvnd.common.Environment;
import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -119,6 +121,14 @@ public class EnvironmentTest {
assertEquals("C:\\jdk-11.0.2\\", Environment.cygpath("/cygdrive/c/jdk-11.0.2/"));
}
+ @Test
+ void emptyBooleanEnvValueIsTrue() {
+ final String EMPTY_STRING = "";
+ final EnvValue envVal = new EnvValue(Environment.MVND_NO_BUFERING,
+ new ValueSource(sb -> sb.append("envValueAsBoolean"), () -> EMPTY_STRING));
+ assertEquals(true, envVal.asBoolean());
+ }
+
static class EnvironmentResource implements AutoCloseable {
private final Properties props = new Properties();
diff --git a/common/src/main/java/org/mvndaemon/mvnd/common/OptionType.java b/common/src/main/java/org/mvndaemon/mvnd/common/OptionType.java
index 082eda17..cbf49ec3 100644
--- a/common/src/main/java/org/mvndaemon/mvnd/common/OptionType.java
+++ b/common/src/main/java/org/mvndaemon/mvnd/common/OptionType.java
@@ -23,7 +23,10 @@ import java.util.stream.Stream;
import org.mvndaemon.mvnd.common.Environment.DocumentedEnumEntry;
public enum OptionType {
- /** true or false */
+ /**
+ * true or false; empty string is also interpreted as true - so
+ * -Dmvnd.noBuffering is equivalent to -Dmvnd.noBuffering=true
+ */
BOOLEAN,
/**
* An unlabeled whole number of milliseconds or a whole number followed by an optional space and a unit