private void SetAttributesIfNecessary(IMessage message) { var needHolder = ErrorChannel != null && RetryTemplate == null; var needAttributes = needHolder || RetryTemplate != null; if (needHolder) { _attributesHolder.Value = ErrorMessageUtils.GetAttributeAccessor(null, null); } if (needAttributes) { var attributes = _attributesHolder.Value; if (attributes != null) { attributes.SetAttribute(ErrorMessageUtils.INPUT_MESSAGE_CONTEXT_KEY, message); if (AttributeProvider != null) { AttributeProvider.Invoke(attributes, message); } } } }