[MNG-7799] Plugin validation may falsely report there are issues (#1136)

But to show no issue, as locality to be shown is not same as reported
issues.

---

https://issues.apache.org/jira/browse/MNG-7799
diff --git a/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultPluginValidationManager.java b/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultPluginValidationManager.java
index 17423b6..bf4122f 100644
--- a/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultPluginValidationManager.java
+++ b/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultPluginValidationManager.java
@@ -161,12 +161,11 @@ private void reportSessionCollectedValidationIssues(MavenSession mavenSession) {
             return; // we were asked to not report anything OR reporting already happened inline
         }
         ConcurrentHashMap<String, PluginValidationIssues> issuesMap = pluginIssues(mavenSession.getRepositorySession());
-        if (!issuesMap.isEmpty()) {
+        EnumSet<IssueLocality> issueLocalitiesToReport = validationReportLevel == ValidationReportLevel.VERBOSE
+                ? EnumSet.allOf(IssueLocality.class)
+                : EnumSet.of(IssueLocality.INTERNAL);
 
-            EnumSet<IssueLocality> issueLocalitiesToReport = validationReportLevel == ValidationReportLevel.VERBOSE
-                    ? EnumSet.allOf(IssueLocality.class)
-                    : EnumSet.of(IssueLocality.INTERNAL);
-
+        if (hasAnythingToReport(issuesMap, issueLocalitiesToReport)) {
             logger.warn("");
             logger.warn("Plugin {} validation issues were detected in following plugin(s)", issueLocalitiesToReport);
             logger.warn("");
@@ -227,6 +226,16 @@ private void reportSessionCollectedValidationIssues(MavenSession mavenSession) {
         }
     }
 
+    private boolean hasAnythingToReport(
+            Map<String, PluginValidationIssues> issuesMap, EnumSet<IssueLocality> issueLocalitiesToReport) {
+        for (PluginValidationIssues issues : issuesMap.values()) {
+            if (hasAnythingToReport(issues, issueLocalitiesToReport)) {
+                return true;
+            }
+        }
+        return false;
+    }
+
     private boolean hasAnythingToReport(PluginValidationIssues issues, EnumSet<IssueLocality> issueLocalitiesToReport) {
         for (IssueLocality issueLocality : issueLocalitiesToReport) {
             Set<String> pluginIssues = issues.pluginIssues.get(issueLocality);