You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ant.apache.org by Conor MacNeill <co...@cortexebusiness.com.au> on 2003/07/15 02:51:38 UTC
Re: FW: ConcurrentModificationException
Forwarding to developers list.
On Tue, 15 Jul 2003 10:07 am, Adam Jack wrote:
> Hi.
>
> We have an ant task that "imports" a build file into this run. Recently it
> has started failing (on Gump), i.e. w/ latest ant code.
>
> Target.java: 316 is the next() below.
>
> public void execute() throws BuildException {
> if (testIfCondition() && testUnlessCondition()) {
> Iterator it = children.iterator();
> while (it.hasNext()) {
> Object o = it.next(); <<<--Thrown here
>
> In short, ant is complaining that the task is modifying the list of tasks
> for the current target.
>
> Since we import a script with "top level" tasks (not in targets), this
> change to the target's task list seems inevitable. As such, I can't
> understand why/how this code ever works/worked, yet it has -- for quite a
> while.
>
> All thoughts appreciated.
>
> regards
>
> Adam
> -----Original Message-----
> From: Adam Jack [mailto:ajack@trysybase.com]
> Sent: Monday, July 14, 2003 5:57 PM
> To: 'krysalis-developers@lists.sourceforge.net'
> Subject: RE: ConcurrentModificationException
>
>
> Scary, 'cos this seems to be right after importing "core" and nothing more
> fancy.
>
> I've inserted the code below into CentipedeTask (in 3 places), and it seems
> that the tasks (without target) in the core xbuild.xml appear to get
> associate with the current task's target (i.e. CentipedeTask's target).
>
> What I just can't understand though, is why it ever works? This output
> below was from running centipede on antlibs and was w/o failure.
>
> Time to take this to ant user's list I think.
>
> regards
>
> Adam
> ---------------------------------------------------------------------------
>- -------------------------
>
> Buildfile: build.xml
> [centipede] Log Target Tasks (for crash debugging) Start of execute() :
> (#5)
> [centipede] 0) -> description - org.apache.tools.ant.UnknownElement@1b1aa65
> [centipede] 1) -> taskdef - org.apache.tools.ant.taskdefs.Taskdef@129f3b5
> [centipede] 2) -> centipede -
> org.krysalis.centipede.ant.CentipedeTask@13f3045
> [centipede] 3) -> import - org.apache.tools.ant.UnknownElement@17a29a1
> [centipede] 4) -> patternset - org.apache.tools.ant.UnknownElement@186c6b2
>
> [centipede] Initializing Centipede [1.0.0.b.6.10000]...
> [centipede] Log Target Tasks (for crash debugging) Before import core() :
> (#5)
> [centipede] 0) -> description - org.apache.tools.ant.UnknownElement@1b1aa65
> [centipede] 1) -> taskdef - org.apache.tools.ant.taskdefs.Taskdef@129f3b5
> [centipede] 2) -> centipede -
> org.krysalis.centipede.ant.CentipedeTask@13f3045
> [centipede] 3) -> import - org.apache.tools.ant.UnknownElement@17a29a1
> [centipede] 4) -> patternset - org.apache.tools.ant.UnknownElement@186c6b2
> [centipede] ...Centipede started.
>
> [centipede] Log Target Tasks (for crash debugging) After import core() :
> (#72)
> [centipede] 0) -> description - org.apache.tools.ant.UnknownElement@1b1aa65
> [centipede] 1) -> taskdef - org.apache.tools.ant.taskdefs.Taskdef@129f3b5
> [centipede] 2) -> centipede -
> org.krysalis.centipede.ant.CentipedeTask@13f3045
> [centipede] 3) -> import - org.apache.tools.ant.UnknownElement@17a29a1
> [centipede] 4) -> patternset - org.apache.tools.ant.UnknownElement@186c6b2
> [centipede] 5) -> description - org.apache.tools.ant.UnknownElement@cb6009
> [centipede] 6) -> tstamp - org.apache.tools.ant.UnknownElement@e28b9
> [centipede] 7) -> buildnumber - org.apache.tools.ant.UnknownElement@193a66f
> [centipede] 8) -> property - org.apache.tools.ant.UnknownElement@93d6bc
> [centipede] 9) -> property - org.apache.tools.ant.UnknownElement@1f6df4c
> [centipede] 10) -> available - org.apache.tools.ant.UnknownElement@be0e27
> [centipede] 11) -> echo - org.apache.tools.ant.UnknownElement@193385d
> [centipede] 12) -> path - org.apache.tools.ant.UnknownElement@7808b9
> [centipede] 13) -> taskdef - org.apache.tools.ant.UnknownElement@5973ea
> [centipede] 14) -> typedef - org.apache.tools.ant.UnknownElement@c9131c
> [centipede] 15) -> taskdef - org.apache.tools.ant.UnknownElement@105b99f
> [centipede] 16) -> xmlproperty - org.apache.tools.ant.UnknownElement@dda25b
> [centipede] 17) -> xmlproperty - org.apache.tools.ant.UnknownElement@ce2187
> [centipede] 18) -> xmlproperty - org.apache.tools.ant.UnknownElement@fb56b1
> [centipede] 19) -> xmlproperty - org.apache.tools.ant.UnknownElement@f8968f
> [centipede] 20) -> property - org.apache.tools.ant.UnknownElement@64c34e
> [centipede] 21) -> available - org.apache.tools.ant.UnknownElement@15253d5
> [centipede] 22) -> property - org.apache.tools.ant.UnknownElement@1fddc31
> [centipede] 23) -> property - org.apache.tools.ant.UnknownElement@1835282
> [centipede] 24) -> property - org.apache.tools.ant.UnknownElement@9df354
> [centipede] 25) -> dirname - org.apache.tools.ant.UnknownElement@1d225a7
> [centipede] 26) -> property - org.apache.tools.ant.UnknownElement@1a62c31
> [centipede] 27) -> property - org.apache.tools.ant.UnknownElement@9f5011
> [centipede] 28) -> property - org.apache.tools.ant.UnknownElement@141b571
> [centipede] 29) -> echo - org.apache.tools.ant.UnknownElement@ef137d
> [centipede] 30) -> mkdir - org.apache.tools.ant.UnknownElement@1e87719
> [centipede] 31) -> mkdir - org.apache.tools.ant.UnknownElement@e32802
> [centipede] 32) -> mkdir - org.apache.tools.ant.UnknownElement@157c2bd
> [centipede] 33) -> mkdir - org.apache.tools.ant.UnknownElement@b23210
> [centipede] 34) -> mkdir - org.apache.tools.ant.UnknownElement@f4f44a
> [centipede] 35) -> mkdir - org.apache.tools.ant.UnknownElement@1d256fa
> [centipede] 36) -> mkdir - org.apache.tools.ant.UnknownElement@4c4975
> [centipede] 37) -> condition - org.apache.tools.ant.UnknownElement@6ac461
> [centipede] 38) -> condition - org.apache.tools.ant.UnknownElement@182da3d
> [centipede] 39) -> condition - org.apache.tools.ant.UnknownElement@1c5f743
> [centipede] 40) -> if - org.apache.tools.ant.UnknownElement@1ec8909
> [centipede] 41) -> condition - org.apache.tools.ant.UnknownElement@18c56d
> [centipede] 42) -> condition - org.apache.tools.ant.UnknownElement@497934
> [centipede] 43) -> condition - org.apache.tools.ant.UnknownElement@1b48197
> [centipede] 44) -> condition - org.apache.tools.ant.UnknownElement@1a80a69
> [centipede] 45) -> condition - org.apache.tools.ant.UnknownElement@14384c2
> [centipede] 46) -> condition - org.apache.tools.ant.UnknownElement@1c0ec97
> [centipede] 47) -> condition - org.apache.tools.ant.UnknownElement@ecb281
> [centipede] 48) -> condition - org.apache.tools.ant.UnknownElement@1bb60c3
> [centipede] 49) -> condition - org.apache.tools.ant.UnknownElement@cdb06e
> [centipede] 50) -> if - org.apache.tools.ant.UnknownElement@1fa1bb6
> [centipede] 51) -> property - org.apache.tools.ant.UnknownElement@1315d34
> [centipede] 52) -> property - org.apache.tools.ant.UnknownElement@1de256f
> [centipede] 53) -> property - org.apache.tools.ant.UnknownElement@16bd8ea
> [centipede] 54) -> property - org.apache.tools.ant.UnknownElement@16e1fb1
> [centipede] 55) -> echo - org.apache.tools.ant.UnknownElement@e2cb55
> [centipede] 56) -> property - org.apache.tools.ant.UnknownElement@19360e2
> [centipede] 57) -> property - org.apache.tools.ant.UnknownElement@bdb503
> [centipede] 58) -> property - org.apache.tools.ant.UnknownElement@b6e39f
> [centipede] 59) -> property - org.apache.tools.ant.UnknownElement@119dc16
> [centipede] 60) -> property - org.apache.tools.ant.UnknownElement@c05d3b
> [centipede] 61) -> property - org.apache.tools.ant.UnknownElement@128f6ee
> [centipede] 62) -> if - org.apache.tools.ant.UnknownElement@6bade9
> [centipede] 63) -> property - org.apache.tools.ant.UnknownElement@166afb3
> [centipede] 64) -> if - org.apache.tools.ant.UnknownElement@9945ce
> [centipede] 65) -> property - org.apache.tools.ant.UnknownElement@b5dac4
> [centipede] 66) -> property - org.apache.tools.ant.UnknownElement@12d96f2
> [centipede] 67) -> property - org.apache.tools.ant.UnknownElement@110003
> [centipede] 68) -> style - org.apache.tools.ant.UnknownElement@17e4ca
> [centipede] 69) -> import - org.apache.tools.ant.UnknownElement@adb1d4
> [centipede] 70) -> path - org.apache.tools.ant.UnknownElement@39ab89
> [centipede] 71) -> echo - org.apache.tools.ant.UnknownElement@175d6ab
>
>
>
>
> private void logTargetTasks(String where) {
>
> Target target = getOwningTarget();
>
> Task[] tasks = target.getTasks();
>
> log(
> "******** Log Target Tasks (for crash debugging) "
> + where
> + " : "
> + target
> + " (#"
> + tasks.length
> + ")",
> Project.MSG_INFO);
>
> for (int i = 0; i < tasks.length; ++i) {
> log(
> i + ") -> " + tasks[i].getTaskName() + " - " + tasks[i],
> Project.MSG_VERBOSE);
> }
> }
> regards
>
> Adam
> -----Original Message-----
> From: krysalis-developers-admin@lists.sourceforge.net
> [mailto:krysalis-developers-admin@lists.sourceforge.net]On Behalf Of
> Nick Chalko
> Sent: Monday, July 14, 2003 2:42 PM
> To: krysalis-developers@lists.sourceforge.net
> Subject: Re: ConcurrentModificationException
>
>
> Here is the output from krysalis-antlibs/makeantlib
>
> ant -debug install
>
> Apache Ant version 1.6alpha compiled on July 14 2003
> Buildfile: build.xml
> Adding reference: ant.PropertyHelper ->
> org.apache.tools.ant.PropertyHelper@110b053
> Detected Java version: 1.4 in: c:\j2sdk1.4.2\jre
> Detected OS: Windows 2000
> Adding reference: ant.ComponentHelper ->
> org.apache.tools.ant.ComponentHelper@19efb05
> Setting ro project property: ant.version -> Apache Ant version 1.6alpha
> compiled on July 14 2003
> Setting ro project property: ant.file ->
> c:\krysalis\krysalis-antlibs\makeantlib\build.xml
> Adding reference: ant.projectHelper ->
> org.apache.tools.ant.helper.ProjectHelper2@291aff
> Adding reference: ant.parsing.context ->
> org.apache.tools.ant.helper.AntXMLContext@a97b0b
> Adding reference: ant.targets -> []
> parsing buildfile c:\krysalis\krysalis-antlibs\makeantlib\build.xml with
> URI = file:///C:/krysalis/krysalis-antlibs/makeantlib/build.xml
> Setting ro project property: ant.project.name -> makeantlib.antlib
> Adding reference: makeantlib.antlib -> org.apache.tools.ant.Project@147c5fc
> Setting ro project property: ant.file.makeantlib.antlib ->
> c:\krysalis\krysalis-antlibs\makeantlib\build.xml
> Project base dir set to: C:\krysalis\krysalis-antlibs\makeantlib
> +Target:
> +Task: taskdef
> Resource centipede loaded from parent loader
> Class org.krysalis.centipede.ant.ImportAntLibTask loaded from parent
> loader (parentFirst)
> +Datatype importantlib org.krysalis.centipede.ant.ImportAntLibTask
> Class org.krysalis.centipede.ant.CentipedeTask loaded from parent loader
> (parentFirst)
> +Datatype centipede org.krysalis.centipede.ant.CentipedeTask
> +Datatype importcent org.krysalis.centipede.ant.ImportAntLibTask
> Class org.krysalis.centipede.ant.RuperDependTask loaded from parent
> loader (parentFirst)
> +Datatype ruperDepend org.krysalis.centipede.ant.RuperDependTask
> +Datatype importAntLib org.krysalis.centipede.ant.ImportAntLibTask
> Class org.krysalis.centipede.ant.OptionalClassLoader loaded from parent
> loader (parentFirst)
> +Datatype optionalclassloader
> org.krysalis.centipede.ant.OptionalClassLoader
> +Task: centipede
> Setting ro project property: centipede.version ->
> 1.0.0.ReleaseLevel.BETA.6.10000
> [centipede] Initializing Centipede [1.0.0.ReleaseLevel.BETA.6.10000]...
> [centipede] Loading Viprom...
> [centipede] ...Viprom ok.
> [centipede] Adding property interceptor ...
> [centipede] ...property interceptor ok.
> [centipede] Importing core xbuild...
> [centipede] Importing Centiopede core xbuild:
> [centipede] Local repositories:
> [centipede] Remote repositories:
> [centipede] checkforupdate=false
> Resource Updater created around
> [file://C:/krysalis/krysalis-antlibs/makeantlib] with
> copy-local-to-target [true] and build.sysclasspath [null]
> [centipede] Property "antlibs.dir" not set.
> [centipede] Added c:\tools\ant\tools\antlibs to local repositories.
> [centipede] Property "user.home" set, but directory [C:\Documents and
> Settings\nchalko\lib\antlibs] not found.
> [centipede] Property "basedir" set, but directory
> [C:\krysalis\krysalis-antlibs\makeantlib\tools\antlibs] not found.
> [centipede] Property "build.dir" not set.
> Import AntLib : core.antlib
> Find Locally (otherwise Download from Remote) : core.antlib
> Find Or
> Downloadfile://C:/krysalis/krysalis-antlibs/makeantlib/core.antlib] in
> Repository Set[ruper (Local:1, Remote:2)] (true).
> Find Or Download Resource
> [core[*unset*.*unset*][.antlib][file://C:/krysalis/krysalis-antlibs/makeant
>l ib/core.antlib]]
> (true, false).
> InstanceIdentifier to match :
> [core[*unset*.*unset*][.antlib][file://C:/krysalis/krysalis-antlibs/makeant
>l ib/core.antlib]]
> Locate Best
> [core[*unset*.*unset*][.antlib][file://C:/krysalis/krysalis-antlibs/makeant
>l ib/core.antlib]]
> in Repository [FlatRepository [file://c:/tools/ant/tools/antlibs]]
> Consider :core*(~true)
> [file://c:/tools/ant/tools/antlibs/core-0.0.1-dev.antlib]
> Candidate
> [core[0.0.1.ReleaseLevel.DEVELOPMENT][.antlib][file://c:/tools/ant/tools/an
>t libs/core-0.0.1-dev.antlib]]
> in repository [Repository (ant.home) : file://c:/tools/ant/tools/antlibs]
> Best Match In Repository :
> core[0.0.1.ReleaseLevel.DEVELOPMENT][.antlib][file://c:/tools/ant/tools/ant
>l ibs/core-0.0.1-dev.antlib]
> New Best Match :
> core[0.0.1.ReleaseLevel.DEVELOPMENT][.antlib][file://c:/tools/ant/tools/ant
>l ibs/core-0.0.1-dev.antlib]
> No Target Repository on ResourceUpdater.
> Selected Destination Repository [FlatRepository
> [file://c:/tools/ant/tools/antlibs]].
> Possibly Unarchive
> [file://c:/tools/ant/tools/antlibs/core-0.0.1-dev.antlib] Copy from
> [core[0.0.1.ReleaseLevel.DEVELOPMENT][.antlib][file://c:/tools/ant/tools/an
>t libs/core-0.0.1-dev.antlib]]
> to [file://c:/tools/ant/tools/antlibs] as
> [file://c:/tools/ant/tools/antlibs/core-0.0.1-dev.antlib].
> Found [file://c:/tools/ant/tools/antlibs/core-0.0.1-dev.antlib] matching
> [core[*unset*.*unset*][.antlib][file://C:/krysalis/krysalis-antlibs/makeant
>l ib/core.antlib]].
> Setting project property: core.antlib.dir ->
> c:/tools/ant/tools/antlibs/core-0.0.1-dev.antlib
> [centipede] set 'core.antlib.dir' to
> 'c:/tools/ant/tools/antlibs/core-0.0.1-dev.antlib'
> [centipede] import file :
> //c:/tools/ant/tools/antlibs/core-0.0.1-dev.antlib/xbuild.xml
> Importing file
> //c:/tools/ant/tools/antlibs/core-0.0.1-dev.antlib/xbuild.xml from
> c:\krysalis\krysalis-antlibs\makeantlib\build.xml
> parsing buildfile
> c:\tools\ant\tools\antlibs\core-0.0.1-dev.antlib\xbuild.xml with URI =
> file:///C:/tools/ant/tools/antlibs/core-0.0.1-dev.antlib/xbuild.xml
> Setting ro project property: ant.file.core.antlib ->
> c:\tools\ant\tools\antlibs\core-0.0.1-dev.antlib\xbuild.xml
> Adding reference: core.classpath ->
> org.apache.tools.ant.UnknownElement@90cb03
> Adding reference: centipede.classpath ->
> org.apache.tools.ant.UnknownElement@41d05d
> [centipede] ...core xbuild ok.
> [centipede] ...Centipede started.
>
>
> BUILD FAILED
> java.util.ConcurrentModificationException
> at
> java.util.AbstractList$Itr.checkForComodification(AbstractList.java:4
> 48)
> at java.util.AbstractList$Itr.next(AbstractList.java:419)
> at org.apache.tools.ant.Target.execute(Target.java:316)
> at
> org.apache.tools.ant.helper.ProjectHelper2.parse(ProjectHelper2.java:
> 127)
> at
> org.apache.tools.ant.ProjectHelper.configureProject(ProjectHelper.jav
> a:117)
> at org.apache.tools.ant.Main.runBuild(Main.java:637)
> at org.apache.tools.ant.Main.startAnt(Main.java:217)
> at org.apache.tools.ant.launch.Launcher.run(Launcher.java:162)
> at org.apache.tools.ant.launch.Launcher.main(Launcher.java:85)
>
> Total time: 4 seconds
> java.util.ConcurrentModificationException
> at
> java.util.AbstractList$Itr.checkForComodification(AbstractList.java:4
> 48)
> at java.util.AbstractList$Itr.next(AbstractList.java:419)
> at org.apache.tools.ant.Target.execute(Target.java:316)
> at
> org.apache.tools.ant.helper.ProjectHelper2.parse(ProjectHelper2.java:
> 127)
> at
> org.apache.tools.ant.ProjectHelper.configureProject(ProjectHelper.jav
> a:117)
> at org.apache.tools.ant.Main.runBuild(Main.java:637)
> at org.apache.tools.ant.Main.startAnt(Main.java:217)
> at org.apache.tools.ant.launch.Launcher.run(Launcher.java:162)
> at org.apache.tools.ant.launch.Launcher.main(Launcher.java:85)
>
>
>
>
>
> -------------------------------------------------------
> This SF.Net email sponsored by: Parasoft
> Error proof Web apps, automate testing & more.
> Download & eval WebKing and get a free book.
> www.parasoft.com/bulletproofapps1
> _______________________________________________
> Krysalis-developers mailing list
> Krysalis-developers@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/krysalis-developers
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
> For additional commands, e-mail: user-help@ant.apache.org
--
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org
Re: FW: ConcurrentModificationException
Posted by Stefan Bodewig <bo...@apache.org>.
On 15 Jul 2003, peter reilly <pe...@corvil.com> wrote:
> We probably should revert the script
> test that showed up the problem in the first
> place.
+1
Stefan
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org
Gump rocks was: ConcurrentModificationException
Posted by Nick Chalko <ni...@chalko.com>.
Gump rocks.
Thanks for responding so quickly.
R,
Nick
Stefan Bodewig wrote:
>On Tue, 15 Jul 2003, Adam Jack <aj...@trysybase.com> wrote:
>
>
>
>>Peter wrote: "revert the script test that showed up the problem in
>>the first place". Sorry, but what does this mean to the
>>non-antdev-initiated?
>>
>>
>
>I committed a patch that was supposed to improve performance and lower
>memory consumption about a week ago. Peter reported that one of our
>unit tests for the <script> task now failed (as it added tasks to the
>current target).
>
>We talked a little about if/how to fix it. The outcome more or less
>was that you shouldn't be modifying the current target with <script>
>so an exception was better than relying on undefined behavior. So we
>changed the unittest and left the situation as it was (planning to
>document it, off course). We somehow managed to overlook the
>"top-level-target and <import>" issue.
>
>The unittest has been reverted, now that the behavior is defined.
>
>
>
>>You can (at the least) count on us to report any failures we get to
>>the ant list. :-)
>>
>>
>
>This is much appreciated.
>
>Stefan
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
>For additional commands, e-mail: dev-help@ant.apache.org
>
>
Gump rocks was: ConcurrentModificationException
Posted by Nick Chalko <ni...@chalko.com>.
Gump rocks.
Thanks for responding so quickly.
R,
Nick
Stefan Bodewig wrote:
>On Tue, 15 Jul 2003, Adam Jack <aj...@trysybase.com> wrote:
>
>
>
>>Peter wrote: "revert the script test that showed up the problem in
>>the first place". Sorry, but what does this mean to the
>>non-antdev-initiated?
>>
>>
>
>I committed a patch that was supposed to improve performance and lower
>memory consumption about a week ago. Peter reported that one of our
>unit tests for the <script> task now failed (as it added tasks to the
>current target).
>
>We talked a little about if/how to fix it. The outcome more or less
>was that you shouldn't be modifying the current target with <script>
>so an exception was better than relying on undefined behavior. So we
>changed the unittest and left the situation as it was (planning to
>document it, off course). We somehow managed to overlook the
>"top-level-target and <import>" issue.
>
>The unittest has been reverted, now that the behavior is defined.
>
>
>
>>You can (at the least) count on us to report any failures we get to
>>the ant list. :-)
>>
>>
>
>This is much appreciated.
>
>Stefan
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
>For additional commands, e-mail: dev-help@ant.apache.org
>
>
Re: FW: ConcurrentModificationException
Posted by Stefan Bodewig <bo...@apache.org>.
On Tue, 15 Jul 2003, Adam Jack <aj...@trysybase.com> wrote:
> Peter wrote: "revert the script test that showed up the problem in
> the first place". Sorry, but what does this mean to the
> non-antdev-initiated?
I committed a patch that was supposed to improve performance and lower
memory consumption about a week ago. Peter reported that one of our
unit tests for the <script> task now failed (as it added tasks to the
current target).
We talked a little about if/how to fix it. The outcome more or less
was that you shouldn't be modifying the current target with <script>
so an exception was better than relying on undefined behavior. So we
changed the unittest and left the situation as it was (planning to
document it, off course). We somehow managed to overlook the
"top-level-target and <import>" issue.
The unittest has been reverted, now that the behavior is defined.
> You can (at the least) count on us to report any failures we get to
> the ant list. :-)
This is much appreciated.
Stefan
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org
RE: FW: ConcurrentModificationException
Posted by Adam Jack <aj...@trysybase.com>.
I see you've checked in the iterator -> int fix, thank you both.
Peter wrote: "revert the script test that showed up the problem in the first
place". Sorry, but what does this mean to the non-antdev-initiated? I am
using Krysalis Centipede, which is clearly too big to have as a unit test
for ant, but which does gump off nightly ant, and will test this feature.
You can (at the least) count on us to report any failures we get to the ant
list. :-) Do you need us to attempt to create a unit test for ant, or is
this enough?
Again, thanks for your quick work and support with this fix.
regards
Adam
-----Original Message-----
From: peter reilly [mailto:peter.reilly@corvil.com]
Sent: Tuesday, July 15, 2003 2:54 AM
To: Ant Developers List
Subject: Re: FW: ConcurrentModificationException
Yep, the import task works again.
We probably should revert the script
test that showed up the problem in the first
place.
Peter
On Tue, 2003-07-15 at 09:35, Stefan Bodewig wrote:
> With a loop like
>
> for (int i = 0; i < children.size(); i++) {
> Object o = children.get(i);
>
> instead of
>
> Iterator it = children.iterator();
> while (it.hasNext()) {
> Object o = it.next();
>
> we should be on the save side, I think. children can only grow as
> there are only methods to add, not to remove tasks/types.
>
> Stefan
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
> For additional commands, e-mail: dev-help@ant.apache.org
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org
Re: FW: ConcurrentModificationException
Posted by peter reilly <pe...@corvil.com>.
Yep, the import task works again.
We probably should revert the script
test that showed up the problem in the first
place.
Peter
On Tue, 2003-07-15 at 09:35, Stefan Bodewig wrote:
> With a loop like
>
> for (int i = 0; i < children.size(); i++) {
> Object o = children.get(i);
>
> instead of
>
> Iterator it = children.iterator();
> while (it.hasNext()) {
> Object o = it.next();
>
> we should be on the save side, I think. children can only grow as
> there are only methods to add, not to remove tasks/types.
>
> Stefan
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
> For additional commands, e-mail: dev-help@ant.apache.org
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org
Re: FW: ConcurrentModificationException
Posted by Stefan Bodewig <bo...@apache.org>.
With a loop like
for (int i = 0; i < children.size(); i++) {
Object o = children.get(i);
instead of
Iterator it = children.iterator();
while (it.hasNext()) {
Object o = it.next();
we should be on the save side, I think. children can only grow as
there are only methods to add, not to remove tasks/types.
Stefan
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org