bhabegger opened a new pull request, #2955: URL: https://github.com/apache/jackrabbit-oak/pull/2955
## Summary - Defers `provisionIndex()` from the `ElasticIndexWriter` constructor to the first `updateDocument()` or `deleteDocuments()` call when both `FT_OAK-12249` and `FT_OAK-12248` are enabled - A reindex that produces zero documents never creates an Elasticsearch index or alias, eliminating the empty-index problem described in OAK-12249 - `ensureProvisioned()` handles the incremental-write-after-empty-reindex case: if an alias does not exist when the first document arrives, it creates a new backing index with a fresh seed and points the alias at it ## Dependency on OAK-12248 **This PR must be merged after #2950 (OAK-12248: graceful 404 handling).** This branch is currently based on `OAK-12248-graceful-404` so the diff includes both changes. Once OAK-12248 merges to trunk this branch will be rebased and the diff will show only the OAK-12249 commit. Deployment order is enforced at runtime: `isLazyProvisioningActive()` returns `true` only when **both** `FT_OAK-12249` and `FT_OAK-12248` are enabled. Enabling `FT_OAK-12249` alone falls back to eager provisioning and logs a `WARN`. ## Tests Three new unit tests in `ElasticIndexWriterTest`: - `lazyProvisioning_requiresGraceful404Toggle` — asserts lazy provisioning is inactive when OAK-12248 toggle is off - `emptyReindex_doesNotCreateEsIndex` — verifies no ES index is created during construction when no documents are written - `nonEmptyReindex_provisionsOnFirstDocument` — verifies `provisionIndex()` is called on the first `updateDocument()` and not before All 11 tests in `ElasticIndexWriterTest` pass. ## Jira https://issues.apache.org/jira/browse/OAK-12249 -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
