in src/main/java/org/apache/maven/plugins/pmd/PmdReportRenderer.java [313:351]
    private void renderSuppressedViolations() {
        if (suppressedViolations.isEmpty()) {
            return;
        }
        startSection(getI18nString("suppressedViolations.title"));
        List<SuppressedViolation> suppressedViolationsCopy = new ArrayList<>(suppressedViolations);
        Collections.sort(suppressedViolationsCopy, new Comparator<SuppressedViolation>() {
            @Override
            public int compare(SuppressedViolation o1, SuppressedViolation o2) {
                return o1.getFilename().compareTo(o2.getFilename());
            }
        });
        startTable();
        tableHeader(new String[] {
            getI18nString("suppressedViolations.column.filename"),
            getI18nString("suppressedViolations.column.ruleMessage"),
            getI18nString("suppressedViolations.column.suppressionType"),
            getI18nString("suppressedViolations.column.userMessage")
        });
        for (SuppressedViolation suppressedViolation : suppressedViolationsCopy) {
            String filename = suppressedViolation.getFilename();
            PmdFileInfo fileInfo = determineFileInfo(filename);
            filename = shortenFilename(filename, fileInfo);
            tableRow(new String[] {
                filename,
                suppressedViolation.getRuleMessage(),
                suppressedViolation.getSuppressionType(),
                suppressedViolation.getUserMessage()
            });
        }
        endTable();
        endSection();
    }