You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucenenet.apache.org by sy...@apache.org on 2012/09/23 11:03:51 UTC

svn commit: r1388982 - in /lucene.net/trunk: src/contrib/Spatial/Util/CompatibilityExtensions.cs test/contrib/Spatial/SpatialTestCase.cs

Author: synhershko
Date: Sun Sep 23 09:03:51 2012
New Revision: 1388982

URL: http://svn.apache.org/viewvc?rev=1388982&view=rev
Log:
Make sure to purge all caches in the spatial module between tests

Modified:
    lucene.net/trunk/src/contrib/Spatial/Util/CompatibilityExtensions.cs
    lucene.net/trunk/test/contrib/Spatial/SpatialTestCase.cs

Modified: lucene.net/trunk/src/contrib/Spatial/Util/CompatibilityExtensions.cs
URL: http://svn.apache.org/viewvc/lucene.net/trunk/src/contrib/Spatial/Util/CompatibilityExtensions.cs?rev=1388982&r1=1388981&r2=1388982&view=diff
==============================================================================
--- lucene.net/trunk/src/contrib/Spatial/Util/CompatibilityExtensions.cs (original)
+++ lucene.net/trunk/src/contrib/Spatial/Util/CompatibilityExtensions.cs Sun Sep 23 09:03:51 2012
@@ -47,6 +47,26 @@ namespace Lucene.Net.Spatial.Util
 			return _docsWithFieldCache.GetOrAdd(field, f => DocsWithFieldCacheEntry_CreateValue(reader, new Entry(field, null), false));
 		}
 
+        /// <summary> <p/>
+        /// EXPERT: Instructs the FieldCache to forcibly expunge all entries 
+        /// from the underlying caches.  This is intended only to be used for 
+        /// test methods as a way to ensure a known base state of the Cache 
+        /// (with out needing to rely on GC to free WeakReferences).  
+        /// It should not be relied on for "Cache maintenance" in general 
+        /// application code.
+        /// <p/>
+        /// <p/>
+        /// <b>EXPERIMENTAL API:</b> This API is considered extremely advanced 
+        /// and experimental.  It may be removed or altered w/o warning in future 
+        /// releases 
+        /// of Lucene.
+        /// <p/>
+        /// </summary>
+        public static void PurgeSpatialCaches(this FieldCache fc)
+        {
+            _docsWithFieldCache.Clear();
+        }
+
 		private static IBits DocsWithFieldCacheEntry_CreateValue(IndexReader reader, Entry entryKey, bool setDocsWithField /* ignored */)
 		{
 			var field = entryKey.field;

Modified: lucene.net/trunk/test/contrib/Spatial/SpatialTestCase.cs
URL: http://svn.apache.org/viewvc/lucene.net/trunk/test/contrib/Spatial/SpatialTestCase.cs?rev=1388982&r1=1388981&r2=1388982&view=diff
==============================================================================
--- lucene.net/trunk/test/contrib/Spatial/SpatialTestCase.cs (original)
+++ lucene.net/trunk/test/contrib/Spatial/SpatialTestCase.cs Sun Sep 23 09:03:51 2012
@@ -23,6 +23,7 @@ using Lucene.Net.Analysis;
 using Lucene.Net.Documents;
 using Lucene.Net.Index;
 using Lucene.Net.Search;
+using Lucene.Net.Spatial.Util;
 using Lucene.Net.Store;
 using Lucene.Net.Util;
 using NUnit.Framework;
@@ -65,6 +66,7 @@ namespace Lucene.Net.Contrib.Spatial.Tes
 				directory.Dispose();
 				directory = null;
 			}
+            CompatibilityExtensions.PurgeSpatialCaches(null);
 			base.TearDown();
 		}
 		// ================================================= Helper Methods ================================================