Skip to content

Conversation

@artembilan
Copy link
Member

https://stackoverflow.com/questions/54546728/how-to-handle-ftpoutboundadapter-connection-exception-in-spring-integration-flow

When channels are configured for the ExpressionEvaluatingRequestHandlerAdvice,
but no expressions, the logic is not performed.
In other words: we can evaluate expressions, when no channels,
but we don't send messages to channels when no expressions.

  • Provide default expressions to be evaluated to payload, when only
    channels are provided.

https://stackoverflow.com/questions/54546728/how-to-handle-ftpoutboundadapter-connection-exception-in-spring-integration-flow

When channels are configured for the `ExpressionEvaluatingRequestHandlerAdvice`,
but no expressions, the logic is not performed.
In other words: we can evaluate expressions, when no channels,
but we  don't send messages to channels when no expressions.

* Provide default expressions to be evaluated to `payload`, when only
channels are provided.
* @since 5.0
*/
public void setOnSuccessExpression(Expression onSuccessExpression) {
Assert.notNull(onSuccessExpression, "'onSuccessExpression' must not be null");
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Breaking change; someone might have...

    advice.setFailureExpression(...);
    advice.setSuccessExpression(null);

Just for self-documentation purposes.

Maybe 5.2 only? Since the work around is simple?

However, why are these asserts even needed? You retained the null checks in doInvoke().

Like all `MessagingException` instances, this payload has `failedMessage` and `cause` properties, as well as an additional property called `evaluationResult`, which contains the result of the expression evaluation.

NOTE: Starting with version 5.1.3, if channels are configured, but expressions are not provided, the default expression is used to evaluate to a `payload` of the message.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

to the payload if the message.

@artembilan
Copy link
Member Author

Pushed according your advises. I think with the current state it is not a breaking change because previously the channels just haven't had any value. They've been ignored.

@garyrussell
Copy link
Contributor

I agree, but it's not necessary to assert not null here; and users might have done it, just for completeness; no need to break such apps.

@garyrussell garyrussell merged commit 71fd60f into spring-projects:master Feb 6, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants