I think in general it is not a good idea. The code in question is: in Target#execute Iterator it = children.iterator(); Object o = it.next(); if (o instanceof Task) { Task task = (Task) o; task.perform(); } else { RuntimeConfigurable r = (RuntimeConfigurable) o; r.maybeConfigure(project); }
This was: Enumeration enum = children.elements(); while (enum.hasMoreElements()) { Object o = enum.nextElement(); if (o instanceof Task) { Task task = (Task) o; task.perform(); } else { RuntimeConfigurable r = (RuntimeConfigurable) o; r.maybeConfigure(project); } The first picks up the fact that children has been modified while it is being iterated, and the second does not. (See src.zip/../Vector#elements()). I am not sure that that depending on an undocumented (I think) feature of Vector/Enumeration is a good idea. So to support this feature one would have to modify the way the task list of a target is visitied. Peter. On Mon, 2003-07-07 at 08:37, Stefan Bodewig wrote: > On 04 Jul 2003, peter reilly <[EMAIL PROTECTED]> wrote: > > > The test code in question was inserting tasks > > into the current target, and this does not > > seem to be a good idea. > > In general or just after the code change? > > If we agree that adding tasks to the current target is no good idea in > general (I'm not sure), we should document it - otherwise it might be > better to revert that part of the Target changes as well as your > changes to the test and fix the situation. > > Stefan > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]