Temporary fix for s-c-stream GH-2178

This removes 'spring.cloud.stream.sendto.destination' headers from each incoming message
This commit is contained in:
Oleg Zhurakousky
2021-05-26 14:09:42 +02:00
parent 3d1c1e2314
commit ad8f9dd044

View File

@@ -923,6 +923,7 @@ public class SimpleFunctionRegistry implements FunctionRegistry, FunctionInspect
: new OriginalMessageHolder(((Message) input).getPayload(), (Message<?>) input);
}
else if (input instanceof Message) {
input = this.filterOutHeaders((Message) input);
if (((Message) input).getPayload().getClass().getName().equals("org.springframework.kafka.support.KafkaNull")) {
return FunctionTypeUtils.isMessage(type) ? input : null;
}
@@ -958,6 +959,13 @@ public class SimpleFunctionRegistry implements FunctionRegistry, FunctionInspect
return convertedInput;
}
// TODO temporary fix for https://github.com/spring-cloud/spring-cloud-stream/issues/2178
// need a cleaner solution
@SuppressWarnings("unchecked")
private Message filterOutHeaders(Message message) {
return MessageBuilder.fromMessage(message).removeHeader("spring.cloud.stream.sendto.destination").build();
}
private boolean isExtractPayload(Message<?> message, Type type) {
if (FunctionTypeUtils.isCollectionOfMessage(type)) {
return true;