This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch fix/CAMEL-23862
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 578fb517c0438245691d161202e718b20ddd6d70
Author: Claus Ibsen <[email protected]>
AuthorDate: Tue Jun 30 16:04:59 2026 +0200

    CAMEL-23862: SQL Trace - prefer CamelSqlQuery header and URL-decode query 
from URI
    
    Co-Authored-By: Claude Opus 4.6 <[email protected]>
    Signed-off-by: Claus Ibsen <[email protected]>
---
 .../camel/impl/console/SqlTraceDevConsole.java      | 21 +++++++++++++++------
 1 file changed, 15 insertions(+), 6 deletions(-)

diff --git 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/SqlTraceDevConsole.java
 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/SqlTraceDevConsole.java
index cd5841af616a..b20ff8fd9929 100644
--- 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/SqlTraceDevConsole.java
+++ 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/SqlTraceDevConsole.java
@@ -16,6 +16,8 @@
  */
 package org.apache.camel.impl.console;
 
+import java.net.URLDecoder;
+import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Locale;
@@ -182,11 +184,17 @@ public class SqlTraceDevConsole extends 
AbstractDevConsole {
         if (endpointUri.startsWith("sql:")) {
             String query = StringHelper.after(endpointUri, "sql:");
             if (query != null) {
+                // strip :// scheme separator if present
+                if (query.startsWith("//")) {
+                    query = query.substring(2);
+                }
                 // remove query parameters
                 int idx = query.indexOf('?');
                 if (idx > 0) {
                     query = query.substring(0, idx);
                 }
+                // URI path is URL-encoded, decode it
+                query = URLDecoder.decode(query, StandardCharsets.UTF_8);
                 return query;
             }
         } else if (endpointUri.startsWith("jdbc:")) {
@@ -235,13 +243,14 @@ public class SqlTraceDevConsole extends 
AbstractDevConsole {
                 if (uri.startsWith("sql:") || uri.startsWith("jdbc:")) {
                     Exchange exchange = ese.getExchange();
 
-                    String query = extractQuery(uri);
-                    // for jdbc component, try to get query from exchange 
header
+                    // prefer the CamelSqlQuery header (runtime override) over 
the URI
+                    String query = null;
+                    Object headerQuery = 
exchange.getMessage().getHeader("CamelSqlQuery");
+                    if (headerQuery != null) {
+                        query = headerQuery.toString();
+                    }
                     if (query == null) {
-                        Object headerQuery = 
exchange.getMessage().getHeader("CamelSqlQuery");
-                        if (headerQuery != null) {
-                            query = headerQuery.toString();
-                        }
+                        query = extractQuery(uri);
                     }
 
                     JsonObject jo = new JsonObject();

Reply via email to