Definitely looks like a bug. Go ahead and add this to Bugzilla with all your examples.

Thanks,
        Erik


Michael Zhou wrote:
Rather than using myant.project, how about simply using 'project'. Does that give you strange results too?


of course, not.  the build file i wrote is just an EXAMPLE to show you
the bug(maybe?)  i want to show you that BEFORE and AFTER the ant task
with inheritAll=yes, the getProject() of the reference "myant" has been
changed accidently.  in another word, the "myant" task points to the
wrong "parent" project after the excuting of  <ant antfile="b.xml" 
inheritRefs="true"/>.


Michael Zhou wrote:

Hi,

Try the following build files:

===== a.xml =======================
<project name="a" default="main">

   <target name="main">

       <script language="beanshell"><![CDATA[
           print("before:  myant.project=" + myant.project.name);
       ]]></script>

       <ant antfile="b.xml" inheritRefs="true"/>

       <script language="beanshell"><![CDATA[
           print("after:   myant.project=" + myant.project.name);
       ]]></script>

       <ant id="myant" antfile="c.xml"/>

   </target>

</project>

===== b.xml =======================

<project name="b" default="main">
   <target name="main"/>
</project>


===== c.xml =======================

<project name="c" default="main">
   <target name="main"/>
</project>


===== RESULT OF [ant -f a.xml] =======================

Buildfile: a.xml

main:
  [script] before:  myant.project=a
  [script] after:   myant.project=b

BUILD SUCCESSFUL

Noticed that the owning project of "myant" task accidently changed after
a calling of ant task with "inheritRefs" on.

Because method copyReference() of class org.apache.tools.ant.taskdefs.Ant
trying to clone the referenced object and set the new cloned object to
new Project.  but the "Ant" is not clonable, so set calling
Ant.setProject() causes the change of the original task.

This causes some problem to me.  Anyone can help?

tks.


--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>




--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>



Reply via email to