@@ -3411,8 +3411,10 @@ public void testDoubleDeliveryReplica() throws IOException {
34113411 TopDocs topDocs = searcher .searcher ().search (new MatchAllDocsQuery (), 10 );
34123412 assertEquals (1 , topDocs .totalHits .value );
34133413 }
3414- List <Translog .Operation > ops = readAllOperationsInLucene (engine , createMapperService ("test" ));
3415- assertThat (ops .stream ().map (o -> o .seqNo ()).collect (Collectors .toList ()), hasItem (20L ));
3414+ if (engine .engineConfig .getIndexSettings ().isSoftDeleteEnabled ()) {
3415+ List <Translog .Operation > ops = readAllOperationsInLucene (engine , createMapperService ("test" ));
3416+ assertThat (ops .stream ().map (o -> o .seqNo ()).collect (Collectors .toList ()), hasItem (20L ));
3417+ }
34163418 }
34173419
34183420 public void testRetryWithAutogeneratedIdWorksAndNoDuplicateDocs () throws IOException {
@@ -5292,8 +5294,11 @@ public void testLuceneSnapshotRefreshesOnlyOnce() throws Exception {
52925294 final MapperService mapperService = createMapperService ("test" );
52935295 final long maxSeqNo = randomLongBetween (10 , 50 );
52945296 final AtomicLong refreshCounter = new AtomicLong ();
5297+ final IndexSettings indexSettings = IndexSettingsModule .newIndexSettings (
5298+ IndexMetaData .builder (defaultSettings .getIndexMetaData ()).settings (Settings .builder ().
5299+ put (defaultSettings .getSettings ()).put (IndexSettings .INDEX_SOFT_DELETES_SETTING .getKey (), true )).build ());
52955300 try (Store store = createStore ();
5296- InternalEngine engine = createEngine (config (defaultSettings , store , createTempDir (), newMergePolicy (),
5301+ InternalEngine engine = createEngine (config (indexSettings , store , createTempDir (), newMergePolicy (),
52975302 null ,
52985303 new ReferenceManager .RefreshListener () {
52995304 @ Override
@@ -5481,6 +5486,19 @@ public void testOpenSoftDeletesIndexWithSoftDeletesDisabled() throws Exception {
54815486 }
54825487 }
54835488
5489+ public void testRequireSoftDeletesWhenAccessingChangesSnapshot () throws Exception {
5490+ try (Store store = createStore ()) {
5491+ final IndexSettings indexSettings = IndexSettingsModule .newIndexSettings (
5492+ IndexMetaData .builder (defaultSettings .getIndexMetaData ()).settings (Settings .builder ().
5493+ put (defaultSettings .getSettings ()).put (IndexSettings .INDEX_SOFT_DELETES_SETTING .getKey (), false )).build ());
5494+ try (InternalEngine engine = createEngine (config (indexSettings , store , createTempDir (), newMergePolicy (), null ))) {
5495+ IllegalStateException error = expectThrows (IllegalStateException .class ,
5496+ () -> engine .newChangesSnapshot ("test" , createMapperService ("test" ), 0 , randomNonNegativeLong (), randomBoolean ()));
5497+ assertThat (error .getMessage (), equalTo ("accessing changes snapshot requires soft-deletes enabled" ));
5498+ }
5499+ }
5500+ }
5501+
54845502 static void trimUnsafeCommits (EngineConfig config ) throws IOException {
54855503 final Store store = config .getStore ();
54865504 final TranslogConfig translogConfig = config .getTranslogConfig ();
0 commit comments