diff --git a/client/src/main/java/org/mvndaemon/mvnd/client/DaemonConnector.java b/client/src/main/java/org/mvndaemon/mvnd/client/DaemonConnector.java
index 4a75b7c2a..fd0cf4993 100644
--- a/client/src/main/java/org/mvndaemon/mvnd/client/DaemonConnector.java
+++ b/client/src/main/java/org/mvndaemon/mvnd/client/DaemonConnector.java
@@ -364,6 +364,10 @@ private Process startDaemonProcess(String daemonId) {
if (maxHeapSize != null) {
args.add("-Xmx" + maxHeapSize);
}
+ String threadStackSize = parameters.threadStackSize();
+ if (threadStackSize != null) {
+ args.add("-Xss" + threadStackSize);
+ }
Environment.MVND_HOME.addCommandLineOption(args, mvndHome.toString());
Environment.MVND_JAVA_HOME.addCommandLineOption(args, parameters.javaHome().toString());
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 f80cc66a5..e0a5417b6 100644
--- a/client/src/main/java/org/mvndaemon/mvnd/client/DaemonParameters.java
+++ b/client/src/main/java/org/mvndaemon/mvnd/client/DaemonParameters.java
@@ -226,6 +226,10 @@ public String maxHeapSize() {
return property(Environment.MVND_MAX_HEAP_SIZE).asString();
}
+ public String threadStackSize() {
+ return property(Environment.MVND_THREAD_STACK_SIZE).asString();
+ }
+
public String jvmArgs() {
return property(Environment.MVND_JVM_ARGS).asString();
}
diff --git a/common/src/main/java/org/mvndaemon/mvnd/common/Environment.java b/common/src/main/java/org/mvndaemon/mvnd/common/Environment.java
index 1d648051d..b082f6e33 100644
--- a/common/src/main/java/org/mvndaemon/mvnd/common/Environment.java
+++ b/common/src/main/java/org/mvndaemon/mvnd/common/Environment.java
@@ -208,6 +208,10 @@ public enum Environment {
* The -Xmx
value to pass to the daemon
*/
MVND_MAX_HEAP_SIZE("mvnd.maxHeapSize", null, "2G", OptionType.MEMORY_SIZE, Flags.DISCRIMINATING),
+ /**
+ * The -Xss
value to pass to the daemon
+ */
+ MVND_THREAD_STACK_SIZE("mvnd.threadStackSize", null, "1M", OptionType.MEMORY_SIZE, Flags.DISCRIMINATING),
/**
* Additional JVM args to pass to the daemon
*/
diff --git a/dist/src/main/distro/conf/mvnd.properties b/dist/src/main/distro/conf/mvnd.properties
index 41b5516a6..beae1c804 100644
--- a/dist/src/main/distro/conf/mvnd.properties
+++ b/dist/src/main/distro/conf/mvnd.properties
@@ -113,6 +113,11 @@
#
# mvnd.maxHeapSize = 2G
+# MVND_THREAD_STACK_SIZE
+# JVM options for the daemon to specify the thread stack size
+#
+# mvnd.threadStackSize = 1M
+
# MVND_JVM_ARGS
# Additional JVM args for the daemon
#