ant-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Charles Hudak" <charles.hu...@cardionet.com>
Subject Problem with jcoverage task being called multiple times
Date Wed, 01 Sep 2004 19:01:24 GMT
I'm seeing another problem with Ant 1.6.2 for a target that previously
worked in 1.6.1.

I have a test and functest target that I run during a single build (e.g.
'ant clean test functest dist'). The test targets rely on  instrumenting
the code with jcoverage before the tests run, e.g.:

            <!-- Run the func tests -->
	<target name="functest" 
		    depends="instrument" 
		    description="Runs the func test suite. Requires the
J2EE server to be running">
		<batch-junit
			test.src.dir="${functest.src.dir}"
		    cp="classpath.functest"
	
junit.results.dir="${junit.functest.results.dir}"
		    junit.report.dir="${junit.functest.report.dir}"
		    fail.on.failure="true"/>		
		<coverage-report 
	
build.coverage.report.dir="${build.coverage.report.dir}" />

	</target>

      <!-- Instruments the source code -->
	<target name="instrument" 
		    depends="compile" 
		    description="Add jcoverage instrumentation">
		<!-- Declare the jcoverage task -->
	    <taskdef classpathref="classpath.build"
resource="tasks.properties" />	
		<!--
		      instrument the application classes, writing the
instrumented
		      classes into ${build.instrumented.dir}.
		    -->
		<instrument todir="${build.instrumented.classes.dir}">
			<!--
		        Note that the following line causes instrument
to ignore any
		        source line containing a reference to log4j, for
the purposes
		        of coverage reporting.
		      -->
			<ignore regex="org.apache.log4j.*" />

			<fileset dir="${build.classes.dir}">
				<!--
		          instrument all the application classes, but
don't instrument
		          the test classes.
		        -->
				<include name="**/*.class" />
			</fileset>
		</instrument>
	</target>	

The problem is that if I run multiple test targets that reexecute this
instrument target, I get the following exception:

BUILD FAILED
java.lang.NullPointerException
        at
org.apache.tools.ant.IntrospectionHelper.supportsNestedElement(Intros
pectionHelper.java:767)
        at
org.apache.tools.ant.UnknownElement.handleChild(UnknownElement.java:5
39)
        at
org.apache.tools.ant.UnknownElement.handleChildren(UnknownElement.jav
a:326)
        at
org.apache.tools.ant.UnknownElement.configure(UnknownElement.java:182
)
        at
org.apache.tools.ant.UnknownElement.maybeConfigure(UnknownElement.jav
a:158)
        at org.apache.tools.ant.Task.getReplacement(Task.java:433)
        at org.apache.tools.ant.Task.perform(Task.java:383)
        at org.apache.tools.ant.Target.execute(Target.java:341)
        at org.apache.tools.ant.Target.performTasks(Target.java:369)
        at org.apache.tools.ant.Project.executeTarget(Project.java:1214)
        at
org.apache.tools.ant.Project.executeTargets(Project.java:1062)
        at org.apache.tools.ant.Main.runBuild(Main.java:673)
        at org.apache.tools.ant.Main.startAnt(Main.java:188)
        at org.apache.tools.ant.launch.Launcher.run(Launcher.java:196)
        at org.apache.tools.ant.launch.Launcher.main(Launcher.java:55)

If I run only one of the test targets, everything works correctly. I'm
thinking that this is a similar problem to the Xdoclet and Macro bugs
that I have encountered in the past where the tasks don't reexecute
correctly.

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message