If a source file cannot be parsed by PMD, the error is reported as a "processing error" and continues with the next file.
However, the maven plugin doesn't use this information. This leads to a situation, where project build is successful despite PMD violations - because PMD skipped files which it can't parse.
This is not such a big problem if the files are compiled before (e.g. executing PMD in a phase later than compile) - as the compiler plugin would fail the build already.
But if "pmd:pmd" or "pmd:check" is called directly, maven would not fail the build.
I'll provide a PR for this bug.