adds exception checking to ExamineExtensions

This commit is contained in:
Shannon
2016-10-26 14:25:32 +02:00
parent 8e4e7e5b19
commit 7e81768abc

View File

@@ -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;
}
}
}