[ 
http://jira.codehaus.org/browse/MAPPASM-120?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andreas Kohn updated MAPPASM-120:
---------------------------------

    Attachment: MAPPASM-120.diff

> Generated .bat file calls endlocal twice in error case
> ------------------------------------------------------
>
>                 Key: MAPPASM-120
>                 URL: http://jira.codehaus.org/browse/MAPPASM-120
>             Project: Mojo AppAssembler Plugin
>          Issue Type: Bug
>    Affects Versions: 1.1.1
>         Environment: Various versions of Windows 2003, Windows 2008, and 
> Windows 7
>            Reporter: Andreas Kohn
>         Attachments: bug-call.bat, bug-direct.bat, MAPPASM-120.diff, pom.xml
>
>
> The generated .bat file handles the case of an error code incorrectly, and 
> will invoke 'endlocal' twice in this case.
> In the best case this means variables like ERROR_CODE are leaked into the 
> parent environment, but it can also lead to errors if the generated script is 
> in turn invoked by another bat script that uses setlocal/endlocal as well.
> See the attached example maven project which generates a bug.bat and includes 
> two wrapper scripts around that. 
> If bug.bat is invoked directly everything seems to work fine, although the 
> variable ERROR_CODE will now be visible in the environment:
> {noformat}
> C:\appassembler>echo %ERROR_CODE%
> %ERROR_CODE%
> C:\appassembler>bin\bug.bat
> C:\appassembler>echo %ERROR_CODE%
> 1
> {noformat}
> If bug.bat is invoked via bug-call.bat everything looks fine (no leaking, no 
> odd messages).
> The same happens if bug.bat is invoked via the bug-call.bat script.
> But, if one invokes using bug-direct.bat (calls bug.bat, without call, but 
> with setlocal) one sees the following:cd 
> {noformat}
> C:\appassembler>bug-direct.bat
> C:\appassembler>setlocal
> C:\appassembler>bin\bug.bat
> 0 was unexpected at this time.
> C:\appassembler>echo %ERROR_CODE%
> %ERROR_CODE%
> {noformat}
> This is caused by endlocal being called twice if the %OS% is Windows_NT: the 
> first time after the :error label (correct, ERROR_CODE was defined to 1 
> before the matching setlocal call), and then right after that after the 
> :endNT label (incorrect, already left local scope, and now it is in the 
> parent scope.
> Attached patch should fix this.

-- 
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

        

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email


Reply via email to