diff --git a/connectivity/service/src/main/java/org/eclipse/ditto/connectivity/service/mapping/javascript/ScriptedOutgoingMapping.java b/connectivity/service/src/main/java/org/eclipse/ditto/connectivity/service/mapping/javascript/ScriptedOutgoingMapping.java index c76158594d..985dd80b0b 100644 --- a/connectivity/service/src/main/java/org/eclipse/ditto/connectivity/service/mapping/javascript/ScriptedOutgoingMapping.java +++ b/connectivity/service/src/main/java/org/eclipse/ditto/connectivity/service/mapping/javascript/ScriptedOutgoingMapping.java @@ -176,6 +176,8 @@ private static JsonObject toJsonObject(final NativeObject nativeObject) { objectBuilder.set(key.toString(), JsonFactory.newValue(intValue)); } else if (value instanceof Double doubleValue) { objectBuilder.set(key.toString(), JsonFactory.newValue(doubleValue)); + } else if (value == null || value instanceof Undefined) { + objectBuilder.set(key.toString(), JsonFactory.nullLiteral()); } else { if (log.isDebugEnabled()){ log.debug("Unsupported type: {}, adding as string: {}", value.getClass().getName(), value); @@ -183,7 +185,11 @@ private static JsonObject toJsonObject(final NativeObject nativeObject) { objectBuilder.set(key.toString(), value.toString()); } } catch (final JsonParseException e) { - objectBuilder.set(key.toString(), value.toString()); + if (value != null) { + objectBuilder.set(key.toString(), value.toString()); + } else { + objectBuilder.set(key.toString(), JsonFactory.nullLiteral()); + } } }); return objectBuilder.build(); diff --git a/connectivity/service/src/main/java/org/eclipse/ditto/connectivity/service/messaging/BasePublisherActor.java b/connectivity/service/src/main/java/org/eclipse/ditto/connectivity/service/messaging/BasePublisherActor.java index ffed8ea8b8..14b917951f 100644 --- a/connectivity/service/src/main/java/org/eclipse/ditto/connectivity/service/messaging/BasePublisherActor.java +++ b/connectivity/service/src/main/java/org/eclipse/ditto/connectivity/service/messaging/BasePublisherActor.java @@ -486,6 +486,7 @@ private SendingOrDropped publishToGenericTarget(final ExpressionResolver resolve DittoHeaders.newBuilder(mappedMessage.getHeaders()) .removeHeader(DittoHeaderDefinition.W3C_TRACEPARENT.getKey()) .build() + .asCaseSensitiveMap() )); final CompletionStage responsesFuture = publishMessage(outboundSource, diff --git a/connectivity/service/src/main/java/org/eclipse/ditto/connectivity/service/messaging/amqp/AmqpConsumerActor.java b/connectivity/service/src/main/java/org/eclipse/ditto/connectivity/service/messaging/amqp/AmqpConsumerActor.java index 6a107d04a7..80c0a9f2fb 100644 --- a/connectivity/service/src/main/java/org/eclipse/ditto/connectivity/service/messaging/amqp/AmqpConsumerActor.java +++ b/connectivity/service/src/main/java/org/eclipse/ditto/connectivity/service/messaging/amqp/AmqpConsumerActor.java @@ -367,6 +367,7 @@ private void handleJmsMessage(final JmsMessage message) throws JMSException { .toBuilder() .removeHeader(DittoHeaderDefinition.W3C_TRACEPARENT.getKey()) .build() + .asCaseSensitiveMap() ); final ExternalMessageBuilder builder = ExternalMessageFactory.newExternalMessageBuilder(headers); final ExternalMessage externalMessage = extractPayloadFromMessage(message, builder) diff --git a/connectivity/service/src/main/java/org/eclipse/ditto/connectivity/service/messaging/kafka/KafkaMessageTransformer.java b/connectivity/service/src/main/java/org/eclipse/ditto/connectivity/service/messaging/kafka/KafkaMessageTransformer.java index 760a734a3f..a64b215c0c 100644 --- a/connectivity/service/src/main/java/org/eclipse/ditto/connectivity/service/messaging/kafka/KafkaMessageTransformer.java +++ b/connectivity/service/src/main/java/org/eclipse/ditto/connectivity/service/messaging/kafka/KafkaMessageTransformer.java @@ -116,6 +116,7 @@ public TransformationResult transform(final ConsumerRecord c .toBuilder() .removeHeader(DittoHeaderDefinition.W3C_TRACEPARENT.getKey()) .build() + .asCaseSensitiveMap() ); try { diff --git a/connectivity/service/src/main/java/org/eclipse/ditto/connectivity/service/messaging/rabbitmq/RabbitMQConsumerActor.java b/connectivity/service/src/main/java/org/eclipse/ditto/connectivity/service/messaging/rabbitmq/RabbitMQConsumerActor.java index 7cefa5bc21..5da7bd294c 100644 --- a/connectivity/service/src/main/java/org/eclipse/ditto/connectivity/service/messaging/rabbitmq/RabbitMQConsumerActor.java +++ b/connectivity/service/src/main/java/org/eclipse/ditto/connectivity/service/messaging/rabbitmq/RabbitMQConsumerActor.java @@ -155,6 +155,7 @@ private void handleDelivery(final Delivery delivery) { .toBuilder() .removeHeader(DittoHeaderDefinition.W3C_TRACEPARENT.getKey()) .build() + .asCaseSensitiveMap() ); final ExternalMessageBuilder externalMessageBuilder =