mvn.bat looses error code on windows NT type platforms ------------------------------------------------------
Key: MNG-3296 URL: http://jira.codehaus.org/browse/MNG-3296 Project: Maven 2 Issue Type: Bug Components: Command Line Affects Versions: 2.0.7 Reporter: Matthias Kerkhoff There is a bug in the mvn.bat script that prevents that an error code is properly returned to the caller of the script. The batch script executes the following lines after maven has been invoked if an error occurs: if ERRORLEVEL 1 goto error :error set ERROR_CODE=1 :end if "%OS%"=="Windows_NT" goto endNT :endNT @endlocal if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" if "%MAVEN_BATCH_PAUSE%" == "on" pause if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% exit /B %ERROR_CODE% The problem is the endlocal statement. Calling endlocal ends the scope in which ERROR_CODE was set to 1. The previous value of ERROR_CODE will be reinstantiated (which is always 0, see line 46). To fix the problem make the ERROR_CODE value known in the outer ("global") scope by changing the endlocal statement into @endlocal & set ERROR_CODE=%ERROR_CODE% -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira