diff --git a/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/function/StreamBridge.java b/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/function/StreamBridge.java index e77adb2a8..fd5fc9f95 100644 --- a/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/function/StreamBridge.java +++ b/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/function/StreamBridge.java @@ -145,8 +145,9 @@ public final class StreamBridge implements SmartInitializingSingleton { boolean skipConversion = producerProperties.isUseNativeEncoding(); - Function functionToInvoke = skipConversion ? v -> MessageBuilder.withPayload(v).build() : - this.functionCatalog.lookup(STREAM_BRIDGE_FUNC_NAME, outputContentType.toString()); + Function functionToInvoke = skipConversion + ? v -> v instanceof Message ? v : MessageBuilder.withPayload(v).build() + : this.functionCatalog.lookup(STREAM_BRIDGE_FUNC_NAME, outputContentType.toString()); if (producerProperties != null && producerProperties.isPartitioned()) { functionToInvoke = new PartitionAwareFunctionWrapper((FunctionInvocationWrapper) functionToInvoke, this.applicationContext, producerProperties);