Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

Clover can't instrument Groovy test classes due to java.io.NotSerializableException on creating ConfigDir

Dustin Pearce November 30, 2011

We have our maven build setup to run Groovy based integration tests. We want to be able to instrument our tests using distributed coverage while our app runs on a local jetty instance. This works great with Java based Junit tests but we are having trouble getting the Groovy tests instrumented.

When the build starts up with Clover the plugin throws the following stacktrace:

{code}

ERROR Could not create Clover Groovy configuration file. No Groovy instrumentation will occur. com.atlassian.maven.plugin.clover.DistributedCoverage

java.io.NotSerializableException: com.atlassian.maven.plugin.clover.DistributedCoverage

at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1164)

at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)

at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483)

at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)

at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)

at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330)

at com.atlassian.clover.instr.java.InstrumentationConfig.saveToFile(InstrumentationConfig.java:429)

at com.atlassian.clover.ant.groovy.GroovycSupport.newConfigDir(GroovycSupport.java:360)

at com.atlassian.maven.plugin.clover.CloverInstrumentInternalMojo.injectGrover(CloverInstrumentInternalMojo.java:353)

at com.atlassian.maven.plugin.clover.CloverInstrumentInternalMojo.execute(CloverInstrumentInternalMojo.java:316)

at com.atlassian.maven.plugin.clover.CloverSetupMojo.execute(CloverSetupMojo.java:31)

at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)

at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)

at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)

at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)

at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)

at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)

at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)

at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)

at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:319)

at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)

at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)

at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)

at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:597)

at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)

at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)

at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)

at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)

{code}

1 answer

0 votes
BrendanA December 4, 2011

Hi Dustin,

I've made a SNAPSHOT release of the Clover plugin for Maven2 that contains a candidate fix for this problem. To use it, you'll need to specify the snapshot version:

<plugin>

 <groupId>com.atlassian.maven.plugins</groupId>

 <artifactId>maven-clover2-plugin</artifactId>

 <version>3.1.3-SNAPSHOT</version>

</plugin>

Note that this snapshot version is only available from Atlassian's public snapshot repository, which you may need to add to your pom also:

<repositories>

        <repository>

          <id>atlassian-m2-snapshot-repository</id>

          <name>Atlassian Public Snapshot Repository</name>

          <url>https://maven.atlassian.com/public-snapshot</url>

        </repository>

</repositories>

Please let me know how you get on with this build.

Regards,

-Brendan

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events