@@ -3411,8 +3411,10 @@ public void testDoubleDeliveryReplica() throws IOException {
3411
3411
TopDocs topDocs = searcher .searcher ().search (new MatchAllDocsQuery (), 10 );
3412
3412
assertEquals (1 , topDocs .totalHits .value );
3413
3413
}
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
+ }
3416
3418
}
3417
3419
3418
3420
public void testRetryWithAutogeneratedIdWorksAndNoDuplicateDocs () throws IOException {
@@ -5292,8 +5294,11 @@ public void testLuceneSnapshotRefreshesOnlyOnce() throws Exception {
5292
5294
final MapperService mapperService = createMapperService ("test" );
5293
5295
final long maxSeqNo = randomLongBetween (10 , 50 );
5294
5296
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 ());
5295
5300
try (Store store = createStore ();
5296
- InternalEngine engine = createEngine (config (defaultSettings , store , createTempDir (), newMergePolicy (),
5301
+ InternalEngine engine = createEngine (config (indexSettings , store , createTempDir (), newMergePolicy (),
5297
5302
null ,
5298
5303
new ReferenceManager .RefreshListener () {
5299
5304
@ Override
@@ -5481,6 +5486,19 @@ public void testOpenSoftDeletesIndexWithSoftDeletesDisabled() throws Exception {
5481
5486
}
5482
5487
}
5483
5488
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
+
5484
5502
static void trimUnsafeCommits (EngineConfig config ) throws IOException {
5485
5503
final Store store = config .getStore ();
5486
5504
final TranslogConfig translogConfig = config .getTranslogConfig ();
0 commit comments