When running the Ant targets that produce code coverage reports for the JUnit tests, the reports are empty:
$ ant -Dderby.junit.testclass=org.apache.derbyTesting.functionTests.tests.lang.CommentTest emma-single 2>&1
[report] [EMMA v2.0, build 5312 (2005/06/12 19:32:43)]
[report] input data path:
[report] source path:
[report] processing input file [/code/derby/trunk/junit_20111123_1751/coverage.em] ...
[report] loaded 1542 metadata entries
[report] 1 file(s) read and merged in 194 ms
[report] nothing to do: no runtime coverage data found in any of the data files
Running Ant with the -v option revealed that the JUnit test was run with the uninstrumented jar files. I suspect that this is because
DERBY-4089 made the build script set derby.junit.classpath automatically if it's not already set. Since Ant properties cannot be changed once they've been assigned a value, this prevents the emma-instrumentation target from building a derby.junit.classpath that points to the instrumented jars.