This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch feature/CAMEL-25208-code-assist in repository https://gitbox.apache.org/repos/asf/camel.git
commit 523be67ca1f8b6b8af9ad2daf6fba9dd2678240a Author: Claus Ibsen <[email protected]> AuthorDate: Wed Sep 30 23:18:29 2026 +0200 CAMEL-25208: camel-jbang - an XML file that is not well formed says so without the parser's position text Found testing in the TUI: the message of an XML route file that does not parse ended with the parser's "(position: TEXT seen ... @11:9)", which the line of the diagnostic already says. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]> Signed-off-by: Claus Ibsen <[email protected]> --- .../camel/dsl/jbang/core/commands/ai/RouteModel.java | 5 ++++- .../camel/dsl/jbang/core/commands/ai/RouteAssistTest.java | 15 +++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ai/RouteModel.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ai/RouteModel.java index bce759548ada..57c60bf10132 100644 --- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ai/RouteModel.java +++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ai/RouteModel.java @@ -238,7 +238,10 @@ public final class RouteModel { private static String firstLine(Throwable e) { String msg = String.valueOf(e.getMessage()); int nl = msg.indexOf('\n'); - return nl > 0 ? msg.substring(0, nl).trim() : msg.trim(); + msg = nl > 0 ? msg.substring(0, nl).trim() : msg.trim(); + // the parser appends where it is ("(position: TEXT seen ...</roues>... @11:9)"), which the line already says + int position = msg.indexOf(" (position:"); + return position > 0 ? msg.substring(0, position) : msg; } /** The local name and the default namespace of the root element; null when there is none. */ diff --git a/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/commands/ai/RouteAssistTest.java b/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/commands/ai/RouteAssistTest.java index 015e7ac22f5c..94acb8b75f63 100644 --- a/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/commands/ai/RouteAssistTest.java +++ b/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/commands/ai/RouteAssistTest.java @@ -342,6 +342,21 @@ class RouteAssistTest { assertThat(errors.get(0).message()).contains("fitler"); } + @Test + void anXmlFileThatIsNotWellFormed() { + String xml = """ + <routes xmlns="http://camel.apache.org/schema/xml-io"> + <route> + <from uri="timer:tick"/> + </route> + </roues> + """; + List<Diagnostic> errors = errors("routes.xml", xml); + assertThat(errors).hasSize(1); + assertThat(errors.get(0).line()).isEqualTo(5); + assertThat(errors.get(0).message()).contains("</roues>").doesNotContain("position:"); + } + @Test void aSpringXmlFileIsNotRead() { String xml = """
