[Bedework-commit] indexer r43 - trunk/src/org/bedework/indexer

svnadmin at bedework.org svnadmin at bedework.org
Tue Mar 2 15:39:08 EST 2010


Author: douglm
Date: 2010-03-02 15:39:07 -0500 (Tue, 02 Mar 2010)
New Revision: 43

Modified:
   trunk/src/org/bedework/indexer/CalSys.java
   trunk/src/org/bedework/indexer/MessageProcessor.java
Log:
Fix indexer to correctly index recurring events - without reindexing the mster for every instance.

BwIndexLuceneImpl had incorrect check for recurring entities - was treating every instance as a recurring event

Modified: trunk/src/org/bedework/indexer/CalSys.java
===================================================================
--- trunk/src/org/bedework/indexer/CalSys.java	2010-02-25 14:41:27 UTC (rev 42)
+++ trunk/src/org/bedework/indexer/CalSys.java	2010-03-02 20:39:07 UTC (rev 43)
@@ -29,6 +29,7 @@
 import org.bedework.calfacade.BwEvent;
 import org.bedework.calfacade.BwSystem;
 import org.bedework.calfacade.RecurringRetrievalMode;
+import org.bedework.calfacade.RecurringRetrievalMode.Rmode;
 import org.bedework.calfacade.exc.CalFacadeAccessException;
 import org.bedework.calfacade.exc.CalFacadeException;
 import org.bedework.calfacade.svc.EventInfo;
@@ -421,7 +422,7 @@
     EventsI evhandler = svci.getEventsHandler();
 
     Collection<EventInfo> evis = evhandler.get(colPath, uid, rid,
-                                               new RecurringRetrievalMode(),
+                                               new RecurringRetrievalMode(Rmode.overrides),
                                                false);
 
     return evis;

Modified: trunk/src/org/bedework/indexer/MessageProcessor.java
===================================================================
--- trunk/src/org/bedework/indexer/MessageProcessor.java	2010-02-25 14:41:27 UTC (rev 42)
+++ trunk/src/org/bedework/indexer/MessageProcessor.java	2010-03-02 20:39:07 UTC (rev 43)
@@ -188,7 +188,7 @@
                                              ece.getRecurrenceId());
 
         for (EventInfo ei: eis) {
-          add(ei);
+          add(ei, true);
         }
       } finally {
         close();
@@ -213,14 +213,17 @@
     getIndexer(val).indexEntity(val);
   }
 
-  private void add(final EventInfo val) throws CalFacadeException {
+  private void add(final EventInfo val,
+                   final boolean firstRecurrence) throws CalFacadeException {
+    boolean first = true;
     if (!Util.isEmpty(val.getOverrides())) {
       for (EventInfo ei: val.getOverrides()) {
-        add(ei);
+        add(ei, first);
+        first = false;
       }
     }
 
-    if (val.getRecurrenceId() != null) {
+    if (firstRecurrence && (val.getRecurrenceId() != null)) {
       // Indexing an override. Reindex the master event
       BwEventProxy proxy = (BwEventProxy)val.getEvent();
 



More information about the Bedework-commit mailing list