[ https://issues.apache.org/jira/browse/MPMD-395?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17852875#comment-17852875 ]
ASF GitHub Bot commented on MPMD-395: ------------------------------------- michael-o commented on code in PR #150: URL: https://github.com/apache/maven-pmd-plugin/pull/150#discussion_r1629937539 ########## src/test/java/org/apache/maven/plugins/pmd/CpdReportTest.java: ########## @@ -240,4 +241,30 @@ public void testExclusionsConfiguration() throws Exception { String str = readFile(generatedFile); assertEquals(0, StringUtils.countMatches(str, "<duplication")); } + + public void testWithCpdErrors() throws Exception { + try { + File generatedReport = generateReport("cpd", "CpdReportTest/with-cpd-errors/pom.xml"); + fail("MavenReportException must be thrown"); + } catch (Exception e) { + assertMavenReportException("There was 1 error while executing CPD", e); + assertLogOutputContains("Lexical error in file"); + assertLogOutputContains("BadFile.java"); + } + } + + private static void assertMavenReportException(String expectedMessage, Exception exception) { + // The maven report exception might be wrapped in a RuntimeException + assertTrue( + "Expected MavenReportException, but was: " + exception, + exception instanceof MavenReportException || exception.getCause() instanceof MavenReportException); + assertTrue( + "Wrong message: expected: " + expectedMessage + ", but was: " + exception.toString(), + exception.toString().contains(expectedMessage)); + } + + private static void assertLogOutputContains(String expectedMessage) { + String log = CapturingPrintStream.getOutput(); + assertTrue("Expected '" + expectedMessage + "' in log, but was:\n" + log, log.contains(expectedMessage)); Review Comment: Is the `\n` also portable on Windows? > Build doesn't fail for invalid CPD format > ----------------------------------------- > > Key: MPMD-395 > URL: https://issues.apache.org/jira/browse/MPMD-395 > Project: Maven PMD Plugin > Issue Type: Bug > Components: CPD > Affects Versions: 3.22.0 > Reporter: Andreas Dangel > Assignee: Andreas Dangel > Priority: Major > Fix For: next-version > > > See > [https://github.com/apache/maven-pmd-plugin/pull/144#issuecomment-2094371392] > > If an exception occurs while the CPD report is created, the exception is only > logged but doesn't fail the build. This means, that build appears to be > successful, although it didn't produce all expected build artifacts. -- This message was sent by Atlassian Jira (v8.20.10#820010)