Should we need a readerProvider.destroy()?

ReaderProvider typically keep IndexReaders open till they are in use or if the index has been updated. But it has no hook to close the "current" IndexReaders when Hibernate Search goes down.

I imagine the current code can become problematic on some VMs if we do lots of hot redeployments.