From f835e7177f7c6a959a543aa7a8d787afc113bc0f Mon Sep 17 00:00:00 2001 From: tpylak <tpylak> Date: Tue, 28 Jul 2009 13:59:34 +0000 Subject: [PATCH] LMS-1050 even if indexing failed for one entity try to index the others SVN: 11917 --- .../db/search/DefaultFullTextIndexer.java | 33 ++++++++++++++----- 1 file changed, 24 insertions(+), 9 deletions(-) diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/search/DefaultFullTextIndexer.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/search/DefaultFullTextIndexer.java index 12f83638e91..94fa823acb3 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/search/DefaultFullTextIndexer.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/search/DefaultFullTextIndexer.java @@ -76,18 +76,33 @@ final class DefaultFullTextIndexer implements IFullTextIndexer { index++; final Object object = results.get(0); - if (operationLog.isDebugEnabled()) - { - operationLog.debug(String.format("Indexing entity '%s'.", object)); - } - fullTextSession.index(object); - if (batchSize > 0 && index % batchSize == 0) - { - hibernateSession.clear(); - } + indexEntity(hibernateSession, fullTextSession, index, object); } transaction.commit(); operationLog .info(String.format("%d '%s' have been indexed.", index, clazz.getSimpleName())); } + + private <T> void indexEntity(final Session hibernateSession, + final FullTextSession fullTextSession, int index, T object) + { + if (operationLog.isDebugEnabled()) + { + operationLog.debug(String.format("Indexing entity '%s'.", object)); + } + try + { + fullTextSession.index(object); + } catch (Exception e) + { + operationLog.error("Error while indexing the object " + object + ": " + e.getMessage() + + ". Indexing will be continued."); + } + if (batchSize > 0 && index % batchSize == 0) + { + fullTextSession.flushToIndexes(); + hibernateSession.clear(); + } + } + } -- GitLab