Skip to content

Commit b01c460

Browse files
committed
PR feedback
1 parent 3fdab49 commit b01c460

3 files changed

Lines changed: 34 additions & 7 deletions

File tree

src/Lucene.Net.Tests/Index/TestTieredMergePolicy.cs

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@
66
using System;
77
using Assert = Lucene.Net.TestFramework.Assert;
88

9+
#if !FEATURE_RANDOM_NEXTINT64_NEXTSINGLE
10+
using RandomizedTesting.Generators; // for Random.NextInt64 extension method
11+
#endif
12+
913
namespace Lucene.Net.Index
1014
{
1115
/*
@@ -279,22 +283,22 @@ public virtual void TestSetters()
279283
[Test]
280284
public void TestUnbalancedMergeSelection()
281285
{
282-
Directory dir = NewDirectory();
286+
using Directory dir = NewDirectory();
283287
IndexWriterConfig iwc = new IndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(Random));
284288
TieredMergePolicy tmp = (TieredMergePolicy)iwc.MergePolicy;
285289
tmp.FloorSegmentMB = 0.00001;
286290
iwc.MergeScheduler = new SerialMergeScheduler();
287291
iwc.MaxBufferedDocs = 100;
288292
iwc.RAMBufferSizeMB = -1;
289-
IndexWriter w = new IndexWriter(dir, iwc);
293+
using IndexWriter w = new IndexWriter(dir, iwc);
290294
for (int i = 0; i < 100000; i++)
291295
{
292296
Document doc = new Document();
293297
doc.Add(NewTextField("id", Random.NextInt64() + "" + Random.NextInt64(), Field.Store.YES));
294298
w.AddDocument(doc);
295299
}
296300

297-
IndexReader r = DirectoryReader.Open(w, true);
301+
using IndexReader r = DirectoryReader.Open(w, true);
298302

299303
// Make sure TMP always merged equal-number-of-docs segments:
300304
foreach (AtomicReaderContext ctx in r.Leaves)
@@ -303,9 +307,10 @@ public void TestUnbalancedMergeSelection()
303307
Assert.IsTrue(numDocs == 100 || numDocs == 1000 || numDocs == 10000, $"got numDocs={numDocs}");
304308
}
305309

306-
r.Dispose();
307-
w.Dispose();
308-
dir.Dispose();
310+
// LUCENENET: disposed via `using` statement
311+
// r.Dispose();
312+
// w.Dispose();
313+
// dir.Dispose();
309314
}
310315
}
311316
}

src/Lucene.Net.Tests/Util/TestOfflineSorter.cs

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -311,5 +311,27 @@ public virtual void TestRamBuffer()
311311
Assert.Throws<ArgumentOutOfRangeException>(() => OfflineSorter.BufferSize.Megabytes(0), "min mb is 0.5");
312312
Assert.Throws<ArgumentOutOfRangeException>(() => OfflineSorter.BufferSize.Megabytes(-1), "min mb is 0.5");
313313
}
314+
315+
[Test, LuceneNetSpecific]
316+
public void TestWrite_ArgumentValidation()
317+
{
318+
FileInfo file = new FileInfo(Path.Combine(tempDir.FullName, "testWrite_ArgumentValidation"));
319+
using var stream = new FileStream(file.FullName, FileMode.CreateNew, FileAccess.ReadWrite, FileShare.Read,
320+
bufferSize: OfflineSorter.DEFAULT_FILESTREAM_BUFFER_SIZE, FileOptions.DeleteOnClose);
321+
using OfflineSorter.ByteSequencesWriter w = new OfflineSorter.ByteSequencesWriter(stream, leaveOpen: true);
322+
323+
// ReSharper disable AccessToDisposedClosure
324+
Assert.Throws<ArgumentNullException>(() => w.Write(((byte[])null)!));
325+
Assert.Throws<ArgumentNullException>(() => w.Write(((BytesRef)null)!));
326+
Assert.Throws<ArgumentOutOfRangeException>(() => w.Write([], -1, 1), "datum");
327+
Assert.Throws<ArgumentOutOfRangeException>(() => w.Write([], 0, -1), "datum");
328+
Assert.Throws<ArgumentException>(() => w.Write([], 0, 1), "datum");
329+
330+
// validate that len is less than or equal to short.MaxValue
331+
var bigArray = new byte[short.MaxValue + 2]; // give extra space so that off <= bytes.Length - len
332+
Assert.Throws<ArgumentOutOfRangeException>(() => w.Write(bigArray, 0, short.MaxValue + 1), "datum");
333+
Assert.DoesNotThrow(() => w.Write(bigArray, 0, short.MaxValue));
334+
// ReSharper restore AccessToDisposedClosure
335+
}
314336
}
315337
}

src/Lucene.Net/Util/OfflineSorter.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -670,7 +670,7 @@ public virtual void Write(byte[] bytes)
670670
/// by the bytes.
671671
/// </summary>
672672
/// <exception cref="ArgumentNullException"><paramref name="bytes"/> is <c>null</c>.</exception>
673-
/// <exception cref="ArgumentOutOfRangeException"><paramref name="off"/> or <paramref name="len"/> is less than 0.</exception>
673+
/// <exception cref="ArgumentOutOfRangeException"><paramref name="off"/> or <paramref name="len"/> is less than 0, or <paramref name="len"/> is greater than <see cref="short.MaxValue"/>.</exception>
674674
/// <exception cref="ArgumentException"><paramref name="off"/> and <paramref name="len"/> refer to a position outside of the array.</exception>
675675
public virtual void Write(byte[] bytes, int off, int len)
676676
{

0 commit comments

Comments
 (0)