ant-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Adam Jack" <aj...@trysybase.com>
Subject FW: ConcurrentModificationException
Date Tue, 15 Jul 2003 00:07:52 GMT
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/makeantl
ib/core.antlib]]
(true, false).
InstanceIdentifier to match :
[core[*unset*.*unset*][.antlib][file://C:/krysalis/krysalis-antlibs/makeantl
ib/core.antlib]]
Locate Best
[core[*unset*.*unset*][.antlib][file://C:/krysalis/krysalis-antlibs/makeantl
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/ant
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/antl
ibs/core-0.0.1-dev.antlib]
New Best Match :
core[0.0.1.ReleaseLevel.DEVELOPMENT][.antlib][file://c:/tools/ant/tools/antl
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/ant
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/makeantl
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


Mime
View raw message