Currently it's possible to set an error handler at search integration level, by using the property hibernate.search.error_handler pointing to a implementation class. The error handler is a callback that presents the exception and an org.hibernate.search.exception.ErrorContext that contains the works that failed and the Throwable On a particular Infinispan index manager, sometimes it may be desirable to retry some indexing operations when a particular exception happens in the backend, and the current mechanism poses some challenges:
- The error handler is at SearchIntegrator level, so all shards (index managers) share the same error handler;
- There's no indication of which index manager that the error occurred;
- It's not possible to compose multiple error handlers into one, which would allow to first do a RetryErrorHandler and then delegate it to the LogErrorHandler if it fails.
|