adds exception checking to ExamineExtensions
This commit is contained in:
@@ -5,6 +5,8 @@ using Examine.LuceneEngine.Providers;
|
||||
using Examine.Providers;
|
||||
using Lucene.Net.Index;
|
||||
using Lucene.Net.Search;
|
||||
using Lucene.Net.Store;
|
||||
using Umbraco.Core.Logging;
|
||||
|
||||
namespace Umbraco.Web.Search
|
||||
{
|
||||
@@ -21,9 +23,17 @@ namespace Umbraco.Web.Search
|
||||
/// <returns></returns>
|
||||
public static int GetIndexDocumentCount(this LuceneIndexer indexer)
|
||||
{
|
||||
using (var reader = indexer.GetIndexWriter().GetReader())
|
||||
try
|
||||
{
|
||||
return reader.NumDocs();
|
||||
using (var reader = indexer.GetIndexWriter().GetReader())
|
||||
{
|
||||
return reader.NumDocs();
|
||||
}
|
||||
}
|
||||
catch (AlreadyClosedException)
|
||||
{
|
||||
LogHelper.Warn(typeof(ExamineExtensions), "Cannot get GetIndexDocumentCount, the writer is already closed");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,9 +44,19 @@ namespace Umbraco.Web.Search
|
||||
/// <returns></returns>
|
||||
public static int GetIndexFieldCount(this LuceneIndexer indexer)
|
||||
{
|
||||
using (var reader = indexer.GetIndexWriter().GetReader())
|
||||
//TODO: check for closing! and AlreadyClosedException
|
||||
|
||||
try
|
||||
{
|
||||
return reader.GetFieldNames(IndexReader.FieldOption.ALL).Count;
|
||||
using (var reader = indexer.GetIndexWriter().GetReader())
|
||||
{
|
||||
return reader.GetFieldNames(IndexReader.FieldOption.ALL).Count;
|
||||
}
|
||||
}
|
||||
catch (AlreadyClosedException)
|
||||
{
|
||||
LogHelper.Warn(typeof(ExamineExtensions), "Cannot get GetIndexFieldCount, the writer is already closed");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -47,9 +67,17 @@ namespace Umbraco.Web.Search
|
||||
/// <returns></returns>
|
||||
public static bool IsIndexOptimized(this LuceneIndexer indexer)
|
||||
{
|
||||
using (var reader = indexer.GetIndexWriter().GetReader())
|
||||
try
|
||||
{
|
||||
return reader.IsOptimized();
|
||||
using (var reader = indexer.GetIndexWriter().GetReader())
|
||||
{
|
||||
return reader.IsOptimized();
|
||||
}
|
||||
}
|
||||
catch (AlreadyClosedException)
|
||||
{
|
||||
LogHelper.Warn(typeof(ExamineExtensions), "Cannot get IsIndexOptimized, the writer is already closed");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -74,9 +102,17 @@ namespace Umbraco.Web.Search
|
||||
/// <returns></returns>
|
||||
public static int GetDeletedDocumentsCount(this LuceneIndexer indexer)
|
||||
{
|
||||
using (var reader = indexer.GetIndexWriter().GetReader())
|
||||
try
|
||||
{
|
||||
return reader.NumDeletedDocs();
|
||||
using (var reader = indexer.GetIndexWriter().GetReader())
|
||||
{
|
||||
return reader.NumDeletedDocs();
|
||||
}
|
||||
}
|
||||
catch (AlreadyClosedException)
|
||||
{
|
||||
LogHelper.Warn(typeof(ExamineExtensions), "Cannot get GetDeletedDocumentsCount, the writer is already closed");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user