[ https://issues.apache.org/jira/browse/MPMD-379?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17843503#comment-17843503 ]
ASF GitHub Bot commented on MPMD-379: ------------------------------------- michael-o commented on PR #144: URL: https://github.com/apache/maven-pmd-plugin/pull/144#issuecomment-2094371392 This change introduced now a failing test which did no bubble up in CI, but should have: ``` [INFO] Running org.apache.maven.plugins.pmd.CpdReportTest org.apache.maven.reporting.MavenReportException: Can't find CPD custom format xhtml: java.lang.ClassNotFoundException at org.apache.maven.plugins.pmd.exec.CpdExecutor.createRenderer(CpdExecutor.java:251) at org.apache.maven.plugins.pmd.exec.CpdExecutor.writeFormattedReport(CpdExecutor.java:226) at org.apache.maven.plugins.pmd.exec.CpdExecutor.lambda$run$1(CpdExecutor.java:181) at net.sourceforge.pmd.cpd.CpdAnalysis.performAnalysis(CpdAnalysis.java:203) at org.apache.maven.plugins.pmd.exec.CpdExecutor.run(CpdExecutor.java:174) at org.apache.maven.plugins.pmd.exec.CpdExecutor.execute(CpdExecutor.java:64) at org.apache.maven.plugins.pmd.CpdReport.executeCpd(CpdReport.java:204) at org.apache.maven.plugins.pmd.CpdReport.canGenerateReport(CpdReport.java:156) at org.apache.maven.reporting.AbstractMavenReport.execute(AbstractMavenReport.java:143) at org.apache.maven.plugins.pmd.AbstractPmdReportTestCase.generateReport(AbstractPmdReportTestCase.java:119) at org.apache.maven.plugins.pmd.CpdReportTest.testInvalidFormat(CpdReportTest.java:129) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at junit.framework.TestCase.runTest(TestCase.java:177) at junit.framework.TestCase.runBare(TestCase.java:142) at junit.framework.TestResult$1.protect(TestResult.java:122) at junit.framework.TestResult.runProtected(TestResult.java:142) at junit.framework.TestResult.run(TestResult.java:125) at junit.framework.TestCase.run(TestCase.java:130) at junit.framework.TestSuite.runTest(TestSuite.java:241) at junit.framework.TestSuite.run(TestSuite.java:236) at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:90) at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:316) at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:240) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:214) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:155) at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:385) at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:162) at org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:507) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:495) Caused by: java.lang.ClassNotFoundException: xhtml at java.net.URLClassLoader.findClass(URLClassLoader.java:387) at java.lang.ClassLoader.loadClass(ClassLoader.java:418) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352) at java.lang.ClassLoader.loadClass(ClassLoader.java:351) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:264) at org.apache.maven.plugins.pmd.exec.CpdExecutor.createRenderer(CpdExecutor.java:247) ... 31 more ``` Verififed against `maven-pmd-plugin-3.21.2`. The acutal reason is this change: ``` + } catch (MavenReportException e) { + LOG.error("Error while writing CPD report", e); + } ``` and the reason why it does not bubble up is because `org.apache.maven.plugins.pmd.CpdReportTest.testInvalidFormat()` does ``` } catch (Exception e) { assertTrue(true); } ``` There is an exception thrown because the test file des not set `localRepository` parameter: ``` D:\Entwicklung\Projekte\maven-pmd-plugin [master ≡ +0 ~1 -0 !]> git diff -U0 diff --git a/src/test/resources/unit/invalid-format/cpd-invalid-format-plugin-config.xml b/src/test/resources/unit/invalid-format/cpd-invalid-format-plugin-config.xml index e3cff6c2..aca6d08e 100644 - > Upgrade to use PMD 7.0.0 by default > ----------------------------------- > > Key: MPMD-379 > URL: https://issues.apache.org/jira/browse/MPMD-379 > Project: Maven PMD Plugin > Issue Type: Improvement > Components: CPD, PMD > Reporter: Andreas Dangel > Assignee: Andreas Dangel > Priority: Major > Fix For: 3.22.0 > > > Add support for the new major version of PMD. > This gives support for analyzing Java 21 code. > The upgrade from PMD 6 to PMD 7 is a major upgrade, that might impact > end-users, if they use custom rulesets (see > [https://maven.apache.org/plugins/maven-pmd-plugin/examples/usingRuleSets.html]) > or if they override the dependencies to upgrade PMD at runtime and currently > use PMD 6.x (see > [https://maven.apache.org/plugins/maven-pmd-plugin/examples/upgrading-PMD-at-runtime.html]). > > Most likely, end-users have to review their rulesets and migrate them to PMD > 7. Rules might have been renamed or replaced. See > [https://docs.pmd-code.org/latest/pmd_release_notes_pmd7.html] and > [https://docs.pmd-code.org/latest/pmd_userdocs_migrating_to_pmd7.html] . > -- This message was sent by Atlassian Jira (v8.20.10#820010)