public override IMessage PreSend(IMessage message, IMessageChannel channel) { if (message.Payload is byte[] && !message.Headers.ContainsKey(BinderHeaders.NATIVE_HEADERS_PRESENT) && EmbeddedHeaderUtils.MayHaveEmbeddedHeaders((byte[])message.Payload)) { MessageValues messageValues; try { messageValues = EmbeddedHeaderUtils.ExtractHeaders((IMessage <byte[]>)message, true); } catch (Exception) { /* * debug() rather then error() since we don't know for sure that it * really is a message with embedded headers, it just meets the * criteria in EmbeddedHeaderUtils.mayHaveEmbeddedHeaders(). */ // this.logger?.LogDebug(EmbeddedHeaderUtils.DecodeExceptionMessage(message), e); messageValues = new MessageValues(message); } return(messageValues.ToMessage()); } return(message); }