Improve error handling

Description

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.

Environment

None

Assignee

Gustavo Fernandes

Reporter

Gustavo Fernandes

Labels

None

Suitable for new contributors

None

Feedback Requested

None

Components

Fix versions

Affects versions

Priority

Major
Configure