You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Claus Ibsen (Jira)" <ji...@apache.org> on 2026/07/11 08:21:00 UTC
[jira] [Assigned] (CAMEL-23991) camel-yaml-dsl-validator-maven-plugin - application.yaml ignore check never matches, and static yamlFiles cache is unsafe under parallel builds and accumulates across modules
[ https://issues.apache.org/jira/browse/CAMEL-23991?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Claus Ibsen reassigned CAMEL-23991:
-----------------------------------
Assignee: Claus Ibsen
> camel-yaml-dsl-validator-maven-plugin - application.yaml ignore check never matches, and static yamlFiles cache is unsafe under parallel builds and accumulates across modules
> ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: CAMEL-23991
> URL: https://issues.apache.org/jira/browse/CAMEL-23991
> Project: Camel
> Issue Type: Bug
> Components: camel-yaml-dsl-validator-maven-plugin
> Affects Versions: 4.21.0
> Reporter: Federico Mariani
> Assignee: Claus Ibsen
> Priority: Minor
>
> Two defects in {{ValidateMojo}} ({{dsl/camel-yaml-dsl/camel-yaml-dsl-validator-maven-plugin/.../ValidateMojo.java}}):
> h3. 1. Dead IGNORE_FILE check (lines 48, 198-201)
> {{FileUtil.onlyName("application.yaml")}} strips the extension and returns {{"application"}}, which is compared against {{IGNORE_FILE = "application.yml"}} — never equal (and {{.yml}} files are never discovered anyway since the extension filter is {{.yaml}}/{{.camel.yaml}}). Result: a Spring Boot/Quarkus-style {{src/main/resources/application.yaml}} is validated against the Camel route schema, producing guaranteed spurious errors (WARN spam, or build failure with {{failOnError=true}}). The constant should be {{"application"}} or the comparison should use the raw file name.
> h3. 2. static mutable yamlFiles cache in a threadSafe mojo (lines 43, 109, 130-147)
> {{private static final Set<File> yamlFiles = new LinkedHashSet<>()}} is shared JVM-wide. With {{mvn -T}} parallel multi-module builds, one module's {{findYamlRouters}} mutates the set while another module iterates it (line 135) → ConcurrentModificationException or lost/duplicated entries. Even single-threaded, the set only accumulates: module N re-validates every file from modules 1..N-1 (O(n^2) work, inflated "Validating N files" counts, and {{failOnError}} in a later module can fail on an earlier module's files).
> Cosmetic bonus: the summary at lines 156-191 prints "errors:N" where N is the number of *files* with errors, not the error count.
> _Filed by Claude Code on behalf of Croway._
--
This message was sent by Atlassian Jira
(v8.20.10#820010)