[ https://issues.jenkins-ci.org/browse/JENKINS-12808?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=159174#comment-159174 ]
Marco Schulze commented on JENKINS-12808: ----------------------------------------- I found out how to make the 2nd surefire-run (after the skipped cobertura-instrumentalisation) fail the whole build: https://dev.nightlabs.org/jenkins/job/org.nightlabs.test20120216/7/console If a method of a unit test returns an instance of a class that is located in the same project's src/main/java/, then surefire crashes when it tries to collect the test methods and the build breaks. > 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