You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2026/06/30 17:45:08 UTC

(camel) 02/08: CAMEL-23862: SQL Trace - prefer CamelSqlQuery header and URL-decode query from URI

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 <cl...@gmail.com>
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 <no...@anthropic.com>
    Signed-off-by: Claus Ibsen <cl...@gmail.com>
---
 .../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();