mirror of
https://github.com/rmcrackan/Libation.git
synced 2026-09-12 21:57:19 -04:00
Windows CI caught real over-reach. When another holder has write.lock, Windows raises the sharing violation before Lucene can turn it into a LockObtainFailedException, so it arrives as a plain IOException. Repairing anything that is not a recognised lock conflict then meant deleting the index the other holder was using -- exactly the second-instance case the retry exists for. An IOException naming Lucene's write lock now counts as a lock conflict. Matching the file name rather than the message wording keeps it working on non-English Windows. The end-to-end test asserts the property instead of the exception type, since the type legitimately differs by platform. Co-authored-by: rmcrackan <rmcrackan@gmail.com>