Marco Schulze created JENKINS-12808:
---------------------------------------

             Summary: cobertura-maven-plugin: cannot be deactivated + fails 
with NullPointerException + version 2.5.1 cannot be overwritten
                 Key: JENKINS-12808
                 URL: https://issues.jenkins-ci.org/browse/JENKINS-12808
             Project: Jenkins
          Issue Type: Bug
          Components: cobertura
    Affects Versions: current
         Environment: Tested with Jenkins 1.451
            Reporter: Marco Schulze
            Assignee: stephenconnolly
            Priority: Blocker


There are three problems related to the cobertura-maven-plugin:

1) Even though my project does NOT have the cobertura-maven-plugin in its 
build/plugins-section, this maven-plugin is magically added by Jenkins to the 
build process. I did NOT enable any cobertura-related setting in the job, 
either.

2) The cobertura-maven-plugin causes the build to fail with a 
NullPointerException:

Caused by: java.lang.NullPointerException
        at java.util.ArrayList.addAll(ArrayList.java:472)
        at 
org.codehaus.mojo.cobertura.CoberturaReportMojo.getAllChildren(CoberturaReportMojo.java:574)
        at 
org.codehaus.mojo.cobertura.CoberturaReportMojo.executeAggregateReport(CoberturaReportMojo.java:275)
        at 
org.codehaus.mojo.cobertura.CoberturaReportMojo.executeAggregateReport(CoberturaReportMojo.java:265)
        at 
org.codehaus.mojo.cobertura.CoberturaReportMojo.executeReport(CoberturaReportMojo.java:251)
        at 
org.apache.maven.reporting.AbstractMavenReport.generate(AbstractMavenReport.java:93)
...

3) It seems to be impossible to override the version of the 
cobertura-maven-plugin: No matter what version I declare in my parent-POM's 
pluginManagement, Jenkins always uses version 2.5.1


For you to reproduce, I created a new project from scratch (I only copied some 
files from other projects and stripped most of their contents). Here are all 
the links:

Project's SVN URL: 
https://dev.nightlabs.org/svn/public/main/experimentals/test20120216/

First build: 
https://dev.nightlabs.org/jenkins/job/org.nightlabs.test20120216/1/console
This build has been done with cobertura-maven-plugin's version being set to 2.4 
in my plugin-MANAGEMENT. Still the build on Jenkins uses version 2.5.1. Note, 
that the cobertura-maven-plugin is NOT listed in the plugins-section (but only 
in the pluginManagement). Therefore, it should not be included in the build 
process at all. When I run the build locally with "mvn clean install", it does 
not occur, too. Here's the log: 
https://dev.nightlabs.org/svn/public/main/experimentals/test20120216/org.nightlabs.test20120216.all/mvn_clean_install.ganesha.log

Second build: 
https://dev.nightlabs.org/jenkins/job/org.nightlabs.test20120216/2/console
This build has been done with the cobertura-maven-plugin being commented out 
from the pluginManagement. Now, the "Effective POM" in m2e shows me NO 
Cobertura AT ALL anymore and still the result is the same.

3rd and 4th build: 
I added configuration/skip=true in the parent-POM with the result that the 
build now works fine. But it does so only, because there is no unit test, yet 
(there is an *integration* test, but no *unit* test).

5th build: 
https://dev.nightlabs.org/jenkins/job/org.nightlabs.test20120216/5/console
I added a unit test which produces this error in the log output (when being run 
the 2nd time):

*********
Tests in error: 
  doSomething(org.nightlabs.test20120216.client.test.SomeTest): 
org/nightlabs/test20120216/client/TestClient

Tests run: 1, Failures: 0, Errors: 1, Skipped: 0

[ERROR] There are test failures.
*********

Despite this error, the build succeeds. However, this is not always the case: 
In another project, this is handled as a fatal error and breaks the build. I 
was not able to find out where's the difference. However, this 2nd test run 
should not happen at all in the first place.

The problem is obviously that the cobertura-maven-plugin is correctly skipped 
(and thus does not instrument any class), but the unit-tests are still executed 
twice. And the second time, it tries to access instrumented classes, which do 
not exist.

Here's what I did in Jenkins (version 1.451) to create the job (I did NOT 
enable any cobertura-related things!):

=> New Job
==> Job name = org.nightlabs.test20120216
==> Build a maven2/3 project
==> OK

==> Enable project-based security
===> Read access for Anonymous

==> Source Code Management
===> Subversion CHECKED
===> Repository URL = 
https://dev.nightlabs.org/svn/public/main/experimentals/test20120216/
===> Check-out Strategy = Emulate clean checkout by first deleting 
unversioned/ignored files, then 'svn update'

==> Build
===> Root POM = org.nightlabs.test20120216.all/pom.xml

==> Save

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.jenkins-ci.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to