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

        

Reply via email to