Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-7204

Ant properties are quoted incorrectly on Windows

    Details

    • Type: Bug
    • Status: Closed (View Workflow)
    • Priority: Critical
    • Resolution: Fixed
    • Component/s: core
    • Labels:
      None
    • Environment:
      Hudson 1.371
      Ant 1.7.1
    • Similar Issues:

      Description

      The latest Hudson seems to quote Ant properties incorrectly. Older versions of Hudson did not have the same problem. The quote problem makes it impossible to define an empty Ant property.

      Steps to reproduce:

      1. Create new free style job
      2. Run the job to create a workspace folder
      3. Add the following file to the job workspace:
        build.xml
        <project default="build" basedir=".">
            <target name="build">
                <echo message="Value: '${value}'" />
            </target>
        </project>
        
      4. Reconfigure the hudson job to invoke Ant
      5. In the Ant properties field write:
        value=""
        
      6. Run the job

      Excepted result:
      The Ant script should show that the value property was blank

      Actual result:
      The Ant script show that the value property is actual "".

      Additional information:
      In the console output of the job Hudson 1.371 displays:
      [workspace] $ cmd.exe /C '"ant.bat "-Dvalue=""""" && exit %%ERRORLEVEL%%"'

      In the console output of the job in older Hudson's (1.361 and earlier) displayed:
      [workspace] $ cmd.exe /C '"ant.bat -Dvalue="" build && exit %%ERRORLEVEL%%"'

        Attachments

          Issue Links

            Activity

            Hide
            amh Anders Hansen added a comment -

            Tested the hudson_main_trunk #196 build. It works perfectly.

            Setting value to:

            value=""
            

            Gives the output:

            [workspace] $ cmd.exe /C '"ant.bat "-Dvalue=""""" && exit %%ERRORLEVEL%%"'
            Buildfile: build.xml
            
            build:
                 [echo] Value: '""'
            BUILD SUCCESSFUL
            

            Setting value to:

            value=
            

            Gives the output:

            [workspace] $ cmd.exe /C '"ant.bat -Dvalue="" && exit %%ERRORLEVEL%%"'
            Buildfile: build.xml
            
            build:
                 [echo] Value: ''
            
            BUILD SUCCESSFUL
            

            Setting value to:

            value=''
            

            Gives the output:

            [workspace] $ cmd.exe /C '"ant.bat -Dvalue='' && exit %%ERRORLEVEL%%"'
            Buildfile: build.xml
            
            build:
                 [echo] Value: ''''
            
            BUILD SUCCESSFUL
            
            Show
            amh Anders Hansen added a comment - Tested the hudson_main_trunk #196 build. It works perfectly. Setting value to: value="" Gives the output: [workspace] $ cmd.exe /C ' "ant.bat " -Dvalue= """"" && exit %%ERRORLEVEL%%" ' Buildfile: build.xml build: [echo] Value: '""' BUILD SUCCESSFUL Setting value to: value= Gives the output: [workspace] $ cmd.exe /C ' "ant.bat -Dvalue=" " && exit %%ERRORLEVEL%%" ' Buildfile: build.xml build: [echo] Value: '' BUILD SUCCESSFUL Setting value to: value='' Gives the output: [workspace] $ cmd.exe /C ' "ant.bat -Dvalue=' ' && exit %%ERRORLEVEL%%" ' Buildfile: build.xml build: [echo] Value: '''' BUILD SUCCESSFUL
            Hide
            macosgrove macosgrove added a comment - - edited

            This is not quite working for all parameters. I am using parameters in the job configuration, set as follows:

            [Choice] environment=sys-test
            [String] releaseTag=September_2010.9708
            [String] dbVersion=September_2010
            [String] dbOrigin=
            [String] comments=
            [String] datetime=
            [Choice] tester=

            This results in $ cmd.exe /C '"ant.bat -file build-trac.xml -Dtester="" -DdbOrigin= -DreleaseTag=September_2010.9708 -Denvironment=sys-test -Ddatetime="" -Dcomments= -DdbVersion=September_2010 -DdeployEnvironment=ci updateDeploymentHistory -verbose && exit %%ERRORLEVEL%%"'

            which fails because of the lack of quotes on dbOrigin and comments. I don't understand why these are treated differently from datetime, which is quoted correctly and works.

            I am using Windows XP SP3 for client and server, Hudson 1.374

            Show
            macosgrove macosgrove added a comment - - edited This is not quite working for all parameters. I am using parameters in the job configuration, set as follows: [Choice] environment=sys-test [String] releaseTag=September_2010.9708 [String] dbVersion=September_2010 [String] dbOrigin= [String] comments= [String] datetime= [Choice] tester= This results in $ cmd.exe /C '"ant.bat -file build-trac.xml -Dtester="" -DdbOrigin= -DreleaseTag=September_2010.9708 -Denvironment=sys-test -Ddatetime="" -Dcomments= -DdbVersion=September_2010 -DdeployEnvironment=ci updateDeploymentHistory -verbose && exit %%ERRORLEVEL%%"' which fails because of the lack of quotes on dbOrigin and comments. I don't understand why these are treated differently from datetime, which is quoted correctly and works. I am using Windows XP SP3 for client and server, Hudson 1.374
            Hide
            kirill_evstigneev Kirill Evstigneev added a comment -

            Another problem with Ant command line quoting - comma in a property value:
            name=foo,bar

            Show
            kirill_evstigneev Kirill Evstigneev added a comment - Another problem with Ant command line quoting - comma in a property value: name=foo,bar
            Hide
            scm_issue_link SCM/JIRA link daemon added a comment -

            Code changed in hudson
            User: : mindless
            Path:
            trunk/hudson/main/core/src/main/java/hudson/tasks/Ant.java
            trunk/www/changelog.html
            http://jenkins-ci.org/commit/34228
            Log:
            JENKINS-7204 update regexp to work for 2 consecutive empty properties

            Show
            scm_issue_link SCM/JIRA link daemon added a comment - Code changed in hudson User: : mindless Path: trunk/hudson/main/core/src/main/java/hudson/tasks/Ant.java trunk/www/changelog.html http://jenkins-ci.org/commit/34228 Log: JENKINS-7204 update regexp to work for 2 consecutive empty properties
            Hide
            dogfood dogfood added a comment -

            Integrated in hudson_main_trunk #234
            JENKINS-7204 update regexp to work for 2 consecutive empty properties

            mindless :
            Files :

            • /trunk/www/changelog.html
            • /trunk/hudson/main/core/src/main/java/hudson/tasks/Ant.java
            Show
            dogfood dogfood added a comment - Integrated in hudson_main_trunk #234 JENKINS-7204 update regexp to work for 2 consecutive empty properties mindless : Files : /trunk/www/changelog.html /trunk/hudson/main/core/src/main/java/hudson/tasks/Ant.java

              People

              • Assignee:
                mindless Alan Harder
                Reporter:
                amh Anders Hansen
              • Votes:
                4 Vote for this issue
                Watchers:
                4 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: