Author: areshetnyak
Date: 2011-02-15 03:29:10 -0500 (Tue, 15 Feb 2011)
New Revision: 3973
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/MultiIndex.java
Log:
EXOJCR-1188 : The patch was checked. IndexInfos.write() was called just after
replaceIndexes operation done by IndexMerger.
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/MultiIndex.java
===================================================================
---
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/MultiIndex.java 2011-02-12
09:47:06 UTC (rev 3972)
+++
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/MultiIndex.java 2011-02-15
08:29:10 UTC (rev 3973)
@@ -876,6 +876,13 @@
// when reindexing the final commit is done at the very end
executeAndLog(new Commit(getTransactionId()));
}
+ // force IndexInfos (IndexNames) to be written on FS and both be replicated
over cluster
+ // for non-coordinator cluster nodes be notified of new index list ASAP. This
may avoid race
+ // conditions when coordinator invokes flush() which performs
indexNames.write()
+ // and deletes obsolete index just after. Making this list be written now,
will notify non-
+ // coordinator node about new merged index and obsolete indexes long time
before they will
+ // be deleted.
+ indexNames.write();
}
finally
{
Show replies by date