[exo-jcr-commits] exo-jcr SVN: r1574 - jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene.

do-not-reply at jboss.org do-not-reply at jboss.org
Tue Jan 26 03:42:43 EST 2010


Author: areshetnyak
Date: 2010-01-26 03:42:43 -0500 (Tue, 26 Jan 2010)
New Revision: 1574

Modified:
   jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/SearchIndex.java
Log:
EXOJCR-395 : Add procedding error log on coordinator in SearchIndex if changed coordinator.

Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/SearchIndex.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/SearchIndex.java	2010-01-26 08:27:18 UTC (rev 1573)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/SearchIndex.java	2010-01-26 08:42:43 UTC (rev 1574)
@@ -53,6 +53,7 @@
 import org.exoplatform.services.jcr.impl.core.query.ErrorLog;
 import org.exoplatform.services.jcr.impl.core.query.ExecutableQuery;
 import org.exoplatform.services.jcr.impl.core.query.IndexerIoMode;
+import org.exoplatform.services.jcr.impl.core.query.IndexerIoModeListener;
 import org.exoplatform.services.jcr.impl.core.query.QueryHandler;
 import org.exoplatform.services.jcr.impl.core.query.QueryHandlerContext;
 import org.exoplatform.services.jcr.impl.core.query.SearchIndexConfigurationHelper;
@@ -88,7 +89,7 @@
  * Implements a {@link org.apache.jackrabbit.core.query.QueryHandler} using
  * Lucene.
  */
-public class SearchIndex extends AbstractQueryHandler
+public class SearchIndex extends AbstractQueryHandler implements IndexerIoModeListener
 {
 
    private static final DefaultQueryNodeFactory DEFAULT_QUERY_NODE_FACTORY = new DefaultQueryNodeFactory();
@@ -595,7 +596,8 @@
       {
          recoverErrorLog(errorLog);
       }
-
+      
+      modeHandler.addIndexerIoModeListener(this);
    }
 
    /**
@@ -2691,4 +2693,28 @@
 
       return new LuceneQueryHits(reader, searcher, query);
    }
+
+   /**
+    * {@inheritDoc}
+    */
+   public void onChangeMode(IndexerIoMode mode)
+   {
+      try
+      {
+         if (mode == IndexerIoMode.READ_WRITE)
+         {
+            // reprocess any notfinished notifies;
+            log.info("Proceessing eroor log ...");
+            recoverErrorLog(errorLog);
+         }
+      }
+      catch (IOException e)
+      {
+         log.error("Can not recover error log. On changed mode " +  mode , e);
+      }
+      catch (RepositoryException e)
+      {
+         log.error("Can not recover error log.", e);
+      }      
+   }
 }



More information about the exo-jcr-commits mailing list