[
https://issues.apache.org/jira/browse/CAMEL-23990?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Claus Ibsen reassigned CAMEL-23990:
-----------------------------------
Assignee: Claus Ibsen
> camel-yaml-dsl-validator - error messages fed to new MessageFormat(...): a
> '{' in the parse error crashes the validator instead of reporting
> --------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: CAMEL-23990
> URL: https://issues.apache.org/jira/browse/CAMEL-23990
> 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
>
> All three catch blocks in the validator build {{new
> MessageFormat(e.getClass().getName() + ": " + e.getMessage())}}:
> * {{dsl/camel-yaml-dsl/camel-yaml-dsl-validator/.../YamlParser.java:43-46}}
> * {{.../YamlValidator.java:69-72}}
> * {{.../CamelYamlParser.java:101-104}}
> {{MessageFormat}}'s constructor parses the pattern eagerly: an unmatched
> {{{}} throws {{IllegalArgumentException}}. SnakeYAML/Jackson-YAML parse
> errors embed a raw snippet of the offending source line in the message, so
> validating a file containing e.g. {{foo: {bar}} (unclosed flow mapping) makes
> the *error reporter itself* throw inside the catch block; {{validate()}}
> propagates the exception and {{ValidateMojo}} aborts the whole build with
> {{MojoExecutionException}} even with {{failOnError=false}}.
> Additionally, apostrophes in messages (very common in Jackson errors, e.g.
> {{Unexpected character ('}' ...)}}) are MessageFormat quote characters, so
> reported messages get silently mangled.
> Fix: escape the message, or pass it as a format *argument* to a constant
> pattern instead of using it as the pattern.
> _Filed by Claude Code on behalf of Croway._
--
This message was sent by Atlassian Jira
(v8.20.10#820010)