@@ -126,11 +126,13 @@ public RandomIndexWriter(Random r, Directory dir, IndexWriterConfig c)
126126 /// <seealso cref="IndexWriter.AddDocument(IEnumerable{IIndexableField})"/>
127127 public virtual void AddDocument ( IEnumerable < IIndexableField > doc )
128128 {
129+ LuceneTestCase . MaybeChangeLiveIndexWriterConfig ( r , IndexWriter . Config ) ;
129130 AddDocument ( doc , IndexWriter . Analyzer ) ;
130131 }
131132
132133 public virtual void AddDocument ( IEnumerable < IIndexableField > doc , Analyzer a )
133134 {
135+ LuceneTestCase . MaybeChangeLiveIndexWriterConfig ( r , IndexWriter . Config ) ;
134136 if ( r . Next ( 5 ) == 3 )
135137 {
136138 // TODO: maybe, we should simply buffer up added docs
@@ -206,6 +208,7 @@ public void Dispose()
206208
207209 private void MaybeCommit ( )
208210 {
211+ LuceneTestCase . MaybeChangeLiveIndexWriterConfig ( r , IndexWriter . Config ) ;
209212 if ( docCount ++ == flushAt )
210213 {
211214 if ( LuceneTestCase . Verbose )
@@ -224,12 +227,14 @@ private void MaybeCommit()
224227
225228 public virtual void AddDocuments ( IEnumerable < IEnumerable < IIndexableField > > docs )
226229 {
230+ LuceneTestCase . MaybeChangeLiveIndexWriterConfig ( r , IndexWriter . Config ) ;
227231 IndexWriter . AddDocuments ( docs ) ;
228232 MaybeCommit ( ) ;
229233 }
230234
231235 public virtual void UpdateDocuments ( Term delTerm , IEnumerable < IEnumerable < IIndexableField > > docs )
232236 {
237+ LuceneTestCase . MaybeChangeLiveIndexWriterConfig ( r , IndexWriter . Config ) ;
233238 IndexWriter . UpdateDocuments ( delTerm , docs ) ;
234239 MaybeCommit ( ) ;
235240 }
@@ -239,6 +244,7 @@ public virtual void UpdateDocuments(Term delTerm, IEnumerable<IEnumerable<IIndex
239244 /// <see cref="IndexWriter.UpdateDocument(Term, IEnumerable{IIndexableField})"/>
240245 public virtual void UpdateDocument ( Term t , IEnumerable < IIndexableField > doc )
241246 {
247+ LuceneTestCase . MaybeChangeLiveIndexWriterConfig ( r , IndexWriter . Config ) ;
242248 if ( r . Next ( 5 ) == 3 )
243249 {
244250 IndexWriter . UpdateDocuments ( t , new EnumerableAnonymousClass2 ( doc ) ) ;
@@ -306,25 +312,46 @@ public void Dispose()
306312 }
307313
308314 public virtual void AddIndexes ( params Directory [ ] dirs )
309- => IndexWriter . AddIndexes ( dirs ) ;
315+ {
316+ LuceneTestCase . MaybeChangeLiveIndexWriterConfig ( r , IndexWriter . Config ) ;
317+ IndexWriter . AddIndexes ( dirs ) ;
318+ }
310319
311320 public virtual void AddIndexes ( params IndexReader [ ] readers )
312- => IndexWriter . AddIndexes ( readers ) ;
321+ {
322+ LuceneTestCase . MaybeChangeLiveIndexWriterConfig ( r , IndexWriter . Config ) ;
323+ IndexWriter . AddIndexes ( readers ) ;
324+ }
313325
314326 public virtual void UpdateNumericDocValue ( Term term , string field , long ? value )
315- => IndexWriter . UpdateNumericDocValue ( term , field , value ) ;
327+ {
328+ LuceneTestCase . MaybeChangeLiveIndexWriterConfig ( r , IndexWriter . Config ) ;
329+ IndexWriter . UpdateNumericDocValue ( term , field , value ) ;
330+ }
316331
317332 public virtual void UpdateBinaryDocValue ( Term term , string field , BytesRef value )
318- => IndexWriter . UpdateBinaryDocValue ( term , field , value ) ;
333+ {
334+ LuceneTestCase . MaybeChangeLiveIndexWriterConfig ( r , IndexWriter . Config ) ;
335+ IndexWriter . UpdateBinaryDocValue ( term , field , value ) ;
336+ }
319337
320338 public virtual void DeleteDocuments ( Term term )
321- => IndexWriter . DeleteDocuments ( term ) ;
339+ {
340+ LuceneTestCase . MaybeChangeLiveIndexWriterConfig ( r , IndexWriter . Config ) ;
341+ IndexWriter . DeleteDocuments ( term ) ;
342+ }
322343
323344 public virtual void DeleteDocuments ( Query q )
324- => IndexWriter . DeleteDocuments ( q ) ;
345+ {
346+ LuceneTestCase . MaybeChangeLiveIndexWriterConfig ( r , IndexWriter . Config ) ;
347+ IndexWriter . DeleteDocuments ( q ) ;
348+ }
325349
326350 public virtual void Commit ( )
327- => IndexWriter . Commit ( ) ;
351+ {
352+ LuceneTestCase . MaybeChangeLiveIndexWriterConfig ( r , IndexWriter . Config ) ;
353+ IndexWriter . Commit ( ) ;
354+ }
328355
329356 public virtual int NumDocs
330357 => IndexWriter . NumDocs ;
@@ -336,16 +363,25 @@ public virtual void DeleteAll()
336363 => IndexWriter . DeleteAll ( ) ;
337364
338365 public virtual DirectoryReader GetReader ( )
339- => GetReader ( true ) ;
366+ {
367+ LuceneTestCase . MaybeChangeLiveIndexWriterConfig ( r , IndexWriter . Config ) ;
368+ return GetReader ( true ) ;
369+ }
340370
341371 private bool doRandomForceMerge = true ;
342372 private bool doRandomForceMergeAssert = true ;
343373
344374 public virtual void ForceMergeDeletes ( bool doWait )
345- => IndexWriter . ForceMergeDeletes ( doWait ) ;
375+ {
376+ LuceneTestCase . MaybeChangeLiveIndexWriterConfig ( r , IndexWriter . Config ) ;
377+ IndexWriter . ForceMergeDeletes ( doWait ) ;
378+ }
346379
347380 public virtual void ForceMergeDeletes ( )
348- => IndexWriter . ForceMergeDeletes ( ) ;
381+ {
382+ LuceneTestCase . MaybeChangeLiveIndexWriterConfig ( r , IndexWriter . Config ) ;
383+ IndexWriter . ForceMergeDeletes ( ) ;
384+ }
349385
350386 public virtual bool DoRandomForceMerge
351387 {
@@ -391,6 +427,7 @@ private void _DoRandomForceMerge() // LUCENENET specific - added leading undersc
391427
392428 public virtual DirectoryReader GetReader ( bool applyDeletions )
393429 {
430+ LuceneTestCase . MaybeChangeLiveIndexWriterConfig ( r , IndexWriter . Config ) ;
394431 getReaderCalled = true ;
395432 if ( r . Next ( 20 ) == 2 )
396433 {
@@ -447,6 +484,11 @@ protected virtual void Dispose(bool disposing)
447484 {
448485 if ( disposing )
449486 {
487+ if ( ! IndexWriter . IsClosed )
488+ {
489+ LuceneTestCase . MaybeChangeLiveIndexWriterConfig ( r , IndexWriter . Config ) ;
490+ }
491+
450492 // if someone isn't using getReader() API, we want to be sure to
451493 // forceMerge since presumably they might open a reader on the dir.
452494 if ( getReaderCalled == false && r . Next ( 8 ) == 2 )
@@ -465,6 +507,7 @@ protected virtual void Dispose(bool disposing)
465507 /// <seealso cref="IndexWriter.ForceMerge(int)"/>
466508 public virtual void ForceMerge ( int maxSegmentCount )
467509 {
510+ LuceneTestCase . MaybeChangeLiveIndexWriterConfig ( r , IndexWriter . Config ) ;
468511 IndexWriter . ForceMerge ( maxSegmentCount ) ;
469512 }
470513
0 commit comments