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

davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/main by this push:
     new f901a8c909a4 CAMEL-25972: camel-controlbus - stats of a route that 
does not exist gives Cannot lookup route (#28790)
f901a8c909a4 is described below

commit f901a8c909a4e9a4c591cf8ad2cb5ed074821b79
Author: Urmila Unni <[email protected]>
AuthorDate: Sun Nov 1 13:50:25 2026 +0530

    CAMEL-25972: camel-controlbus - stats of a route that does not exist gives 
Cannot lookup route (#28790)
    
    Co-authored-by: Claude <[email protected]>
---
 .../org/apache/camel/component/controlbus/ControlBusProducer.java | 7 +++++--
 .../apache/camel/component/controlbus/ControlBusStatsTest.java    | 8 ++++++++
 2 files changed, 13 insertions(+), 2 deletions(-)

diff --git 
a/components/camel-controlbus/src/main/java/org/apache/camel/component/controlbus/ControlBusProducer.java
 
b/components/camel-controlbus/src/main/java/org/apache/camel/component/controlbus/ControlBusProducer.java
index 34d0807f8a5a..f9d71556f355 100644
--- 
a/components/camel-controlbus/src/main/java/org/apache/camel/component/controlbus/ControlBusProducer.java
+++ 
b/components/camel-controlbus/src/main/java/org/apache/camel/component/controlbus/ControlBusProducer.java
@@ -210,8 +210,11 @@ public class ControlBusProducer extends 
DefaultAsyncProducer {
                     operation = "dumpRoutesStatsAsXml";
                 } else {
                     Route route = getEndpoint().getCamelContext().getRoute(id);
-                    on = 
getEndpoint().getCamelContext().getManagementStrategy().getManagementObjectNameStrategy()
-                            .getObjectNameForRoute(route);
+                    // a route that does not exist has no MBean, so give the 
"Cannot lookup route" text below
+                    on = route != null
+                            ? 
getEndpoint().getCamelContext().getManagementStrategy().getManagementObjectNameStrategy()
+                                    .getObjectNameForRoute(route)
+                            : null;
                     operation = "dumpRouteStatsAsXml";
                 }
                 if (on != null) {
diff --git 
a/core/camel-management/src/test/java/org/apache/camel/component/controlbus/ControlBusStatsTest.java
 
b/core/camel-management/src/test/java/org/apache/camel/component/controlbus/ControlBusStatsTest.java
index e4cfe0bced0d..cf0119028dfb 100644
--- 
a/core/camel-management/src/test/java/org/apache/camel/component/controlbus/ControlBusStatsTest.java
+++ 
b/core/camel-management/src/test/java/org/apache/camel/component/controlbus/ControlBusStatsTest.java
@@ -20,6 +20,7 @@ import org.apache.camel.ContextTestSupport;
 import org.apache.camel.builder.RouteBuilder;
 import org.junit.jupiter.api.Test;
 
+import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
@@ -89,6 +90,13 @@ public class ControlBusStatsTest extends ContextTestSupport {
         assertTrue(xml.contains("exchangesCompleted=\"1\""));
     }
 
+    @Test
+    public void testControlBusRouteStatUnknownRoute() {
+        // a route that does not exist gives a message instead of a 
NullPointerException that leaves the body as it was
+        String body = 
template.requestBody("controlbus:route?routeId=unknown&action=stats", "Hello 
World", String.class);
+        assertEquals("Cannot lookup route with id unknown", body);
+    }
+
     @Override
     protected RouteBuilder createRouteBuilder() {
         return new RouteBuilder() {

Reply via email to