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 c0188e246f1c CAMEL-24078: camel-jms/camel-amqp - Fix medium findings 
from code review
c0188e246f1c is described below

commit c0188e246f1c9dc55751a4cb95ef3c3288181145
Author: Claus Ibsen <[email protected]>
AuthorDate: Wed Jul 15 18:06:24 2026 +0200

    CAMEL-24078: camel-jms/camel-amqp - Fix medium findings from code review
    
    Fix four medium-severity findings from the camel-jms/camel-amqp code review:
    - M3: Reset cached JmsHeaderFilterStrategy when includeAllJMSXProperties
      changes via JMX, so the new value takes effect
    - M4: Auto-set consumerType=Custom at component level when
      messageListenerContainerFactory is set, matching endpoint behavior
    - M6: Move initialized flag into prepareAndStartListenerContainer() to
      prevent asyncStartListener=true from defeating autoStartup=false
    - M9: Guard AMQP auto-created connectionFactory with null check to avoid
      clobbering an explicitly configured factory
    
    Closes #24737
    Co-Authored-By: Claude Opus 4.6 <[email protected]>
---
 .../main/java/org/apache/camel/component/amqp/AMQPComponent.java    | 5 +++--
 .../src/main/java/org/apache/camel/component/jms/JmsComponent.java  | 1 +
 .../src/main/java/org/apache/camel/component/jms/JmsConsumer.java   | 6 +++---
 .../src/main/java/org/apache/camel/component/jms/JmsEndpoint.java   | 5 +++++
 4 files changed, 12 insertions(+), 5 deletions(-)

diff --git 
a/components/camel-amqp/src/main/java/org/apache/camel/component/amqp/AMQPComponent.java
 
b/components/camel-amqp/src/main/java/org/apache/camel/component/amqp/AMQPComponent.java
index 145e7ab5693a..0106e96acdef 100644
--- 
a/components/camel-amqp/src/main/java/org/apache/camel/component/amqp/AMQPComponent.java
+++ 
b/components/camel-amqp/src/main/java/org/apache/camel/component/amqp/AMQPComponent.java
@@ -112,8 +112,9 @@ public class AMQPComponent extends JmsComponent {
                 connectionFactory.setTopicPrefix("topic://");
             }
             getConfiguration().setConnectionFactory(connectionFactory);
-        } else if (host != null || port != null || getUsername() != null || 
getPassword() != null || useTopicPrefix != null
-                || useSsl != null) {
+        } else if (getConfiguration().getConnectionFactory() == null
+                && (host != null || port != null || getUsername() != null || 
getPassword() != null || useTopicPrefix != null
+                        || useSsl != null)) {
             StringBuilder sb = new StringBuilder();
             sb.append(useSsl == Boolean.TRUE ? "amqps://" : "amqp://");
             sb.append(host == null ? AMQP_DEFAULT_HOST : 
host).append(":").append(port == null ? AMQP_DEFAULT_PORT : port);
diff --git 
a/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsComponent.java
 
b/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsComponent.java
index 218d513c38ad..c3821aaadce7 100644
--- 
a/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsComponent.java
+++ 
b/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsComponent.java
@@ -998,6 +998,7 @@ public class JmsComponent extends 
HeaderFilterStrategyComponent {
 
     public void 
setMessageListenerContainerFactory(MessageListenerContainerFactory 
messageListenerContainerFactory) {
         
configuration.setMessageListenerContainerFactory(messageListenerContainerFactory);
+        configuration.setConsumerType(ConsumerType.Custom);
     }
 
     public boolean isIncludeSentJMSMessageID() {
diff --git 
a/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsConsumer.java
 
b/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsConsumer.java
index e906bb71f6e0..7be15c1e46d2 100644
--- 
a/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsConsumer.java
+++ 
b/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsConsumer.java
@@ -171,9 +171,6 @@ public class JmsConsumer extends DefaultConsumer implements 
Suspendable {
         } else {
             prepareAndStartListenerContainer();
         }
-
-        // mark as initialized for the first time
-        initialized = true;
     }
 
     protected void prepareAndStartListenerContainer() {
@@ -187,6 +184,9 @@ public class JmsConsumer extends DefaultConsumer implements 
Suspendable {
             }
             startListenerContainer();
         }
+
+        // mark as initialized after the auto-startup check
+        initialized = true;
     }
 
     protected void stopAndDestroyListenerContainer() {
diff --git 
a/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java
 
b/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java
index de8eecab077f..8c18b428ee57 100644
--- 
a/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java
+++ 
b/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java
@@ -1216,6 +1216,11 @@ public class JmsEndpoint extends DefaultEndpoint
     @ManagedAttribute
     public void setIncludeAllJMSXProperties(boolean includeAllJMSXProperties) {
         configuration.setIncludeAllJMSXProperties(includeAllJMSXProperties);
+        // Reset the default header filter strategy so it gets re-created
+        // with the updated includeAllJMSXProperties value
+        if (this.headerFilterStrategy instanceof JmsHeaderFilterStrategy) {
+            this.headerFilterStrategy = null;
+        }
     }
 
     @ManagedAttribute

Reply via email to