New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[#1199] Non transient remote exceptions transport fix #1743
Conversation
SonarCloud Quality Gate failed. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Bunch of comments worth going through. Conceptually I have a good feeling about this addition though! Did you per chance also to a local form of integration test to validate retries occurred when using AxonServer/JGroups/SpringCloud to distribute the command bus?
...ework/axonserver/connector/command/AxonServerNonTransientRemoteCommandHandlingException.java
Outdated
Show resolved
Hide resolved
...framework/axonserver/connector/query/AxonServerNonTransientRemoteQueryHandlingException.java
Outdated
Show resolved
Hide resolved
...framework/axonserver/connector/query/AxonServerNonTransientRemoteQueryHandlingException.java
Outdated
Show resolved
Hide resolved
...ework/axonserver/connector/command/AxonServerNonTransientRemoteCommandHandlingException.java
Outdated
Show resolved
Hide resolved
...ework/axonserver/connector/command/AxonServerNonTransientRemoteCommandHandlingException.java
Outdated
Show resolved
Hide resolved
...onnector/src/test/java/org/axonframework/axonserver/connector/util/ErrorCodeDeciderTest.java
Outdated
Show resolved
Hide resolved
messaging/src/main/java/org/axonframework/commandhandling/distributed/ReplyMessage.java
Outdated
Show resolved
Hide resolved
messaging/src/main/java/org/axonframework/messaging/RemoteExceptionDescription.java
Outdated
Show resolved
Hide resolved
messaging/src/main/java/org/axonframework/messaging/RemoteExceptionDescription.java
Outdated
Show resolved
Hide resolved
messaging/src/main/java/org/axonframework/messaging/RemoteNonTransientHandlingException.java
Outdated
Show resolved
Hide resolved
Also, SonarCloud is complaining about some issues too. So please take a look at those too :-) |
…er/connector/query/AxonServerNonTransientRemoteQueryHandlingException.java Co-authored-by: Steven van Beelen <steven.vanbeelen@axoniq.io>
…er/connector/command/AxonServerNonTransientRemoteCommandHandlingException.java Co-authored-by: Steven van Beelen <steven.vanbeelen@axoniq.io>
Co-authored-by: Steven van Beelen <steven.vanbeelen@axoniq.io>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Several smaller comments still, but I think we're getting there!
...framework/axonserver/connector/query/AxonServerNonTransientRemoteQueryHandlingException.java
Outdated
Show resolved
Hide resolved
...connector/src/main/java/org/axonframework/axonserver/connector/query/AxonServerQueryBus.java
Outdated
Show resolved
Hide resolved
...connector/src/main/java/org/axonframework/axonserver/connector/query/AxonServerQueryBus.java
Outdated
Show resolved
Hide resolved
messaging/src/main/java/org/axonframework/messaging/RemoteExceptionDescription.java
Outdated
Show resolved
Hide resolved
...framework/axonserver/connector/query/AxonServerNonTransientRemoteQueryHandlingException.java
Outdated
Show resolved
Hide resolved
...ework/axonserver/connector/command/AxonServerNonTransientRemoteCommandHandlingException.java
Outdated
Show resolved
Hide resolved
...ework/axonserver/connector/command/AxonServerNonTransientRemoteCommandHandlingException.java
Outdated
Show resolved
Hide resolved
...framework/axonserver/connector/query/AxonServerNonTransientRemoteQueryHandlingException.java
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Believe that's it. Thanks for the effort @sandjelkovic! Let's wait for a second pair of eyes, to see if he/she comes up with the same conclusion :-)
SonarCloud Quality Gate failed. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
SonarCloud complains about the inheritance level of the Exceptions added in this PR. |
This PR will resolve #1199
Exception transiency property wasn't correctly sent or received during transportation between applications.
To be able to distinguish which type of exception was thrown at the handling side, the command/query sending side will deserialize the message and expose this information in the
cause
field of *ExecutionException
s. To support this, a new exceptionRemoteNonTransientHandlingException
has been created to indicate the non-transient nature of a remote exception.The result is that the
CommandExecutionException
andQueryExecutionException
will remain the same, but the retry callback and retry scheduler will be able to determine if a command should be retried based on the cause ofCommandExecutionException