https://issues.apache.org/bugzilla/show_bug.cgi?id=41368
Chung, Gene-Sung <[email protected]> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |REOPENED Resolution|FIXED | --- Comment #5 from Chung, Gene-Sung <[email protected]> 2009-08-05 13:51:40 PDT --- This fix seems to cause some side effects which does not preserve the calling hierarchical scoping for the record name while the original source code seems to be intended to preserve it. For instance, with this script: <target name="parent" depends="prepare"> <record action="start" name="${parent.log}"/> <echo message="Parent target started"/> <antcall target="child"> <param name="child.log" value="${recdir}/child-01.log"/> </antcall> <record action="stop" name="${parent.log}"/> </target> <target name="child"> <record action="start" name="${child.log}"/> <echo message="Child target started - ${child.log}"/> <record action="stop" name="${parent.log}" append="yes"/> <echo message="Child target processing - ${child.log}"/> <record action="start" name="${parent.log}"/> <echo message="Child target ended - ${child.log}"/> <record action="stop" name="${child.log}"/> </target> the fix generate the following log entries for parent: [echo] Parent target started child: [echo] Child target started - recorder-out/child-01.log [echo] Child target processing - recorder-out/child-01.log (*) [echo] Child target ended - recorder-out/child-01.log [echo] Child target ended - recorder-out/child-01.log (*) (*) seems to be errors. Rather than the per-Project-object approach, it might be better to check the project of RecorderEntry during the cleanup. Recoder.java (Assuming all the changes were revoked) import java.util.Iterator; import java.util.Map; private void cleanup() { Hashtable entries = (Hashtable)recorderEntries.clone(); Iterator itEntries = entries.entrySet().iterator(); while (itEntries.hasNext()) { Map.Entry entry = (Map.Entry)itEntries.next(); RecorderEntry re = (RecorderEntry)entry.getValue(); if (re.getProject() == getProject()) recorderEntries.remove(entry.getKey()); } getProject().removeBuildListener(this); } RecoderEntry.java public Project getProject() { return project; } I have verified this with the ant scripts (record.xml and record2.xml) and the above script. -- Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug.
