September 2019
Intermediate to advanced
668 pages
15h 59m
English
Exceptions that are thrown by a method annotated with @Retry can be wrapped by the retry mechanism with a RetryExceptionWrapper exception. To be able to handle the actual exception that the method threw, for example, to apply a fallback method when CircuitBreakerOpenException is thrown, the caller needs to add logic that unwraps RetryExceptionWrapper exceptions and replaces them with the actual exception.
In our case, it is the getCompositeProduct method in the ProductCompositeServiceImpl class that makes the call using the Project Reactor API for Mono objects. The Mono API has a convenient method, onErrorMap, that can be used to unwrap RetryExceptionWrapper exceptions. It is used in the getCompositeProduct ...