Skip to content

Commit 92667bb

Browse files
committed
[apachegh-11363] Use random temp directory for Java parser compilation
- Use random temp directory for each invocation to avoid conflicts - Capture stderr from Java parser to debug output file - Clean up temp directory after use - This ensures complete isolation between different Maven invocations
1 parent 1c5a9c9 commit 92667bb

File tree

1 file changed

+13
-6
lines changed
  • apache-maven/src/assembly/maven/bin

1 file changed

+13
-6
lines changed

apache-maven/src/assembly/maven/bin/mvn.cmd

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -184,19 +184,26 @@ if not exist "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadJvmConfig
184184

185185
rem Use Java to parse jvm.config to avoid batch script parsing issues with special characters
186186
rem This handles pipes, quotes, and other special characters correctly
187+
rem Use random temp directory to avoid conflicts between different Maven versions
188+
set "JVM_CONFIG_PARSER_DIR=%TEMP%\mvn-jvm-parser-%RANDOM%-%RANDOM%"
189+
mkdir "%JVM_CONFIG_PARSER_DIR%"
187190
set "JVM_CONFIG_TEMP=%TEMP%\mvn-jvm-config-%RANDOM%.txt"
188-
"%JAVACMD%" "%MAVEN_HOME%\bin\JvmConfigParser.java" "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" "%MAVEN_PROJECTBASEDIR%" > "%JVM_CONFIG_TEMP%" 2>nul
191+
set "JVM_CONFIG_ERR=%TEMP%\mvn-jvm-config-err-%RANDOM%.txt"
192+
"%JAVACMD:java.exe=javac.exe%" -d "%JVM_CONFIG_PARSER_DIR%" "%MAVEN_HOME%\bin\JvmConfigParser.java" >nul 2>&1
193+
"%JAVACMD%" -cp "%JVM_CONFIG_PARSER_DIR%" JvmConfigParser "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" "%MAVEN_PROJECTBASEDIR%" > "%JVM_CONFIG_TEMP%" 2> "%JVM_CONFIG_ERR%"
189194
rem Read the single line from temp file
190195
set /p JVM_CONFIG_MAVEN_OPTS=<"%JVM_CONFIG_TEMP%"
191-
del "%JVM_CONFIG_TEMP%" 2>nul
192-
193-
rem Debug output
194-
echo DEBUG: JVM_CONFIG_MAVEN_OPTS=%JVM_CONFIG_MAVEN_OPTS% >&2
195-
echo DEBUG: MAVEN_OPTS=%MAVEN_OPTS% >&2
196196

197197
rem Debug output to file for IT verification
198198
echo JVM_CONFIG_MAVEN_OPTS=%JVM_CONFIG_MAVEN_OPTS% > "%MAVEN_PROJECTBASEDIR%\mvn-debug.txt"
199199
echo MAVEN_OPTS=%MAVEN_OPTS% >> "%MAVEN_PROJECTBASEDIR%\mvn-debug.txt"
200+
echo PARSER_STDERR: >> "%MAVEN_PROJECTBASEDIR%\mvn-debug.txt"
201+
type "%JVM_CONFIG_ERR%" >> "%MAVEN_PROJECTBASEDIR%\mvn-debug.txt" 2>nul
202+
203+
rem Cleanup temp files and directory
204+
del "%JVM_CONFIG_TEMP%" 2>nul
205+
del "%JVM_CONFIG_ERR%" 2>nul
206+
rmdir /s /q "%JVM_CONFIG_PARSER_DIR%" 2>nul
200207

201208
:endReadJvmConfig
202209

0 commit comments

Comments
 (0)