public virtual void TestNormsClose() { Directory dir1 = new MockRAMDirectory(); TestIndexReaderReopen.CreateIndex(dir1, false); SegmentReader reader1 = SegmentReader.GetOnlySegmentReader(dir1); reader1.Norms("field1"); Norm r1norm = (Norm)reader1.norms_ForNUnit["field1"]; SegmentReader.Ref r1BytesRef = r1norm.BytesRef(); SegmentReader reader2 = (SegmentReader)reader1.Clone(); Assert.AreEqual(2, r1norm.BytesRef().RefCount()); reader1.Close(); Assert.AreEqual(1, r1BytesRef.RefCount()); reader2.Norms("field1"); reader2.Close(); dir1.Close(); }
public virtual void TestSegmentReaderCloseReferencing() { Directory dir1 = new MockRAMDirectory(); TestIndexReaderReopen.CreateIndex(dir1, false); SegmentReader origSegmentReader = SegmentReader.GetOnlySegmentReader(dir1); origSegmentReader.DeleteDocument(1); origSegmentReader.SetNorm(4, "field1", 0.5f); SegmentReader clonedSegmentReader = (SegmentReader)origSegmentReader.Clone(); AssertDelDocsRefCountEquals(2, origSegmentReader); origSegmentReader.Close(); AssertDelDocsRefCountEquals(1, origSegmentReader); // check the norm refs Norm norm = clonedSegmentReader.norms_ForNUnit["field1"]; Assert.AreEqual(1, norm.BytesRef().RefCount()); clonedSegmentReader.Close(); dir1.Close(); }