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

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


The following commit(s) were added to refs/heads/camel-4.8.x by this push:
     new 1ba70bf65f8 Backport kafka + sjms perf fixes (#16950)
1ba70bf65f8 is described below

commit 1ba70bf65f87f37ca09c28582e5357fda463ae69
Author: Otavio Rodolfo Piske <[email protected]>
AuthorDate: Tue Jan 28 14:31:20 2025 +0100

    Backport kafka + sjms perf fixes (#16950)
    
    * CAMEL-21663: fix NPE hurting sjms/sjms2 performance
    
    * CAMEL-21664: avoid unnecessary type cache miss
---
 .../camel/component/kafka/producer/support/ProducerUtil.java  |  8 +++++---
 .../org/apache/camel/component/sjms/jms/JmsMessageHelper.java | 11 ++++++++++-
 2 files changed, 15 insertions(+), 4 deletions(-)

diff --git 
a/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/producer/support/ProducerUtil.java
 
b/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/producer/support/ProducerUtil.java
index 7563d08f2f4..d9e04a4e7ed 100644
--- 
a/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/producer/support/ProducerUtil.java
+++ 
b/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/producer/support/ProducerUtil.java
@@ -75,9 +75,11 @@ public final class ProducerUtil {
     public static void setRecordMetadata(Object body, List<RecordMetadata> 
recordMetadataList) {
         if (body instanceof Exchange ex) {
             ex.getMessage().setHeader(KafkaConstants.KAFKA_RECORD_META, 
recordMetadataList);
+        } else {
+            if (body instanceof Message msg) {
+                msg.setHeader(KafkaConstants.KAFKA_RECORD_META, 
recordMetadataList);
+            }
         }
-        if (body instanceof Message msg) {
-            msg.setHeader(KafkaConstants.KAFKA_RECORD_META, 
recordMetadataList);
-        }
+
     }
 }
diff --git 
a/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/jms/JmsMessageHelper.java
 
b/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/jms/JmsMessageHelper.java
index 1d67dad7c23..e2495c83dc9 100644
--- 
a/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/jms/JmsMessageHelper.java
+++ 
b/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/jms/JmsMessageHelper.java
@@ -321,6 +321,10 @@ public final class JmsMessageHelper {
      * @return         <tt>true</tt> if redelivered, <tt>false</tt> if not, 
<tt>null</tt> if not able to determine
      */
     public static Boolean getJMSRedelivered(Message message) {
+        if (message == null) {
+            return null;
+        }
+
         try {
             return message.getJMSRedelivered();
         } catch (Exception e) {
@@ -432,7 +436,12 @@ public final class JmsMessageHelper {
      */
     public static String getJMSCorrelationIDAsBytes(Message message) {
         try {
-            return new String(message.getJMSCorrelationIDAsBytes());
+            final byte[] jmsCorrelationIDAsBytes = 
message.getJMSCorrelationIDAsBytes();
+            if (jmsCorrelationIDAsBytes != null) {
+                return new String(jmsCorrelationIDAsBytes);
+            }
+
+            return null;
         } catch (Exception e) {
             // ignore if JMS broker do not support this
         }

Reply via email to