Thanks,
ErikMichael 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]>
