Yes this is a bug in the ant-contrib 's for task
(as usual I have forgot my password..)

work-around: use step="-1" if begin and end are the
same, and ensure that end >= begin.

work-around-2: patch ant-conrib:
svn co 
https://ant-contrib.svn.sourceforge.net/svnroot/ant-contrib/ant-contrib/trunk
ant-contrib

Index: src/main/java/net/sf/antcontrib/logic/ForTask.java
===================================================================
--- src/main/java/net/sf/antcontrib/logic/ForTask.java  (revision 177)
+++ src/main/java/net/sf/antcontrib/logic/ForTask.java  (working copy)
@@ -237,7 +237,7 @@
                 throw new BuildException("step cannot be 0");
             } else if (iEnd > begin && step < 0) {
                 throw new BuildException("end > begin, step needs to be > 0");
-            } else if (iEnd <= begin && step > 0) {
+            } else if (iEnd < begin && step > 0) {
                 throw new BuildException("end <= begin, step needs to be < 0");
             }
         }

Peter

On Mon, Nov 30, 2009 at 11:44 AM,  <jan.mate...@rzf.fin-nrw.de> wrote:
> <project xmlns:ac="antlib:net.sf.antcontrib">
>    <ac:for param="i" begin="0" end="1">
>      <sequential>
>        <echo>i is @{i}</echo>
>      </sequential>
>    </ac:for>
> </project>
>
> With begin=end=1 you will get the error message
>  build.xml:2: end <= begin, step needs to be < 0
>
> So I see two possibilities:
> 1) the exceptional 1-jvm-case
>   <macrodef name="doit">
>     <attribute name="param"/>
>   ...
>   <ac:if>
>     <equals arg1="${end}" "1"/>
>     <ac:then> <doit param="1"/> </>
>     <ac:else>
>       <ac:for ...> <doit param="@{i}"/>
>
> 2) NullObject
>   Maybe your <sequential> implementation could deal with the value '0' (and 
> do nothing)
>
>
> Jan
>
>
>> -----Ursprüngliche Nachricht-----
>> Von: Harry_ [mailto:harjitwo...@gmail.com]
>> Gesendet: Montag, 30. November 2009 11:50
>> An: user@ant.apache.org
>> Betreff: ForTask throwing exception for same value for begin and end
>>
>>
>> Hi,
>>
>> I am using ForTask for looping. The end attribute value comes
>> from property.
>> I am using it like
>>
>>  <property name="JVMInstances" value="2"/>
>>
>>  <for begin="1" end="${JVMInstances}"  param="JVMID">
>>
>> The above code works fine.
>>
>> But when I make the value of JVMInstances as 1, then
>> exception comes during
>> the execution of this Ant file.
>>
>> Can Any one tell me if it is a known defect that for loop
>> does not work with
>> same value of begin and end attribute. I am using
>> ise.antelope.tasks.ForTask.
>>
>>
>> If this is a defect can anyone tell me how to write a
>> function block in ant.
>> This will help me in not writing redundant lines in build
>> file by testing
>> above condition in if Block.
>>
>> Regards
>> --
>> View this message in context:
>> http://old.nabble.com/ForTask-throwing-exception-for-same-valu
> e-for-begin-and-end-tp26572661p26572661.html
>> Sent from the Ant - Users mailing list archive at Nabble.com.
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: user-unsubscr...@ant.apache.org
>> For additional commands, e-mail: user-h...@ant.apache.org
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscr...@ant.apache.org
> For additional commands, e-mail: user-h...@ant.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@ant.apache.org
For additional commands, e-mail: user-h...@ant.apache.org

Reply via email to