From a9bb99e0a0a3f5eb3e62267d3da40e038fa1340a Mon Sep 17 00:00:00 2001 From: Jaehee Shin Date: Wed, 23 Sep 2026 05:58:13 +0900 Subject: [PATCH] build: quote the Mockito -javaagent path in surefire argLine The -javaagent argument added in #1483 is set per module as -javaagent:${org.mockito:mockito-core:jar} without quotes. Surefire splits argLine into JVM arguments at unquoted whitespace, so when the local Maven repository path contains a space (for example a Windows user profile such as C:\Users\First Last) the forked JVM receives a truncated agent path and exits before running any test: Error opening zip file or JAR manifest missing : C:\Users\First Quote the value in every module that sets it, which is how jacoco-maven-plugin already passes its own agent argument when the path contains a space, and note in the parent pom that the quotes must stay. CI runs on Ubuntu with a space-free repository path, so it could not catch this. --- a2a/pom.xml | 2 +- contrib/firestore-session-service/pom.xml | 2 +- contrib/langchain4j/pom.xml | 2 +- contrib/planners/pom.xml | 2 +- contrib/spring-ai/pom.xml | 2 +- core/pom.xml | 2 +- dev/pom.xml | 2 +- pom.xml | 3 ++- 8 files changed, 9 insertions(+), 8 deletions(-) diff --git a/a2a/pom.xml b/a2a/pom.xml index 5435fa435..caeada5f8 100644 --- a/a2a/pom.xml +++ b/a2a/pom.xml @@ -26,7 +26,7 @@ 4.13.2 - -javaagent:${org.mockito:mockito-core:jar} + "-javaagent:${org.mockito:mockito-core:jar}" diff --git a/contrib/firestore-session-service/pom.xml b/contrib/firestore-session-service/pom.xml index 8d8cb87a4..0a9e65b44 100644 --- a/contrib/firestore-session-service/pom.xml +++ b/contrib/firestore-session-service/pom.xml @@ -31,7 +31,7 @@ - -javaagent:${org.mockito:mockito-core:jar} + "-javaagent:${org.mockito:mockito-core:jar}" diff --git a/contrib/langchain4j/pom.xml b/contrib/langchain4j/pom.xml index 20c2c6588..35479454d 100644 --- a/contrib/langchain4j/pom.xml +++ b/contrib/langchain4j/pom.xml @@ -31,7 +31,7 @@ - -javaagent:${org.mockito:mockito-core:jar} + "-javaagent:${org.mockito:mockito-core:jar}" diff --git a/contrib/planners/pom.xml b/contrib/planners/pom.xml index 33617c667..402d4c044 100644 --- a/contrib/planners/pom.xml +++ b/contrib/planners/pom.xml @@ -31,7 +31,7 @@ - -javaagent:${org.mockito:mockito-core:jar} + "-javaagent:${org.mockito:mockito-core:jar}" diff --git a/contrib/spring-ai/pom.xml b/contrib/spring-ai/pom.xml index 39145a9ef..6e97872bf 100644 --- a/contrib/spring-ai/pom.xml +++ b/contrib/spring-ai/pom.xml @@ -33,7 +33,7 @@ 1.21.3 - -javaagent:${org.mockito:mockito-core:jar} + "-javaagent:${org.mockito:mockito-core:jar}" diff --git a/core/pom.xml b/core/pom.xml index caaf149fb..f14f7aae6 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -30,7 +30,7 @@ - -javaagent:${org.mockito:mockito-core:jar} + "-javaagent:${org.mockito:mockito-core:jar}" diff --git a/dev/pom.xml b/dev/pom.xml index c128af739..15e3d7ffa 100644 --- a/dev/pom.xml +++ b/dev/pom.xml @@ -28,7 +28,7 @@ - -javaagent:${org.mockito:mockito-core:jar} + "-javaagent:${org.mockito:mockito-core:jar}" diff --git a/pom.xml b/pom.xml index befd679f9..1ecea26d9 100644 --- a/pom.xml +++ b/pom.xml @@ -86,7 +86,8 @@ + startup agent instead of self-attaching at runtime, which newer JDKs block. Keep the + quotes: they make a jar path with spaces a single JVM argument. --> ${mockito.javaagent.arg} @{jacoco.agent.argLine} --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.base/java.text=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/jdk.internal.misc=ALL-UNNAMED -Dio.netty.tryReflectionSetAccessible=true