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();
        }
Example #2
0
        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();
        }