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

Next challenges

Recent achievements

  • Global
  • Personal

Recognition

  • Give kudos
  • Received
  • Given

Leaderboard

  • Global

Trophy case

Kudos (beta program)

Kudos logo

You've been invited into the Kudos (beta program) private group. Chat with others in the program, or give feedback to Atlassian.

View group

It's not the same without you

Join the community to find out what other Atlassian users are discussing, debating and creating.

Atlassian Community Hero Image Collage

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

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

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
Community showcase
Published in Opsgenie

Investigate deployment-related incidents with Bamboo and Opsgenie together

Back in April of last year one of the major product announcements from Opsgenie was the launch of the Incident investigation view which created a deep connection between Bitbucket and Opsgenie, empow...

90 views 1 3
Read article

Community Events

Connect with like-minded Atlassian users at free events near you!

Find an event

Connect with like-minded Atlassian users at free events near you!

Unfortunately there are no Community Events near you at the moment.

Host an event

You're one step closer to meeting fellow Atlassian users at your local event. Learn more about Community Events

Events near you