Author: nzamosenchuk
Date: 2010-03-24 11:42:01 -0400 (Wed, 24 Mar 2010)
New Revision: 2109
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/MultiIndex.java
Log:
EXOJCR-589: Persistent UpdateInProgress is now set to true in MultiIndex.update() method
if flush would be performed.
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 2010-03-24
14:18:24 UTC (rev 2108)
+++
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/MultiIndex.java 2010-03-24
15:42:01 UTC (rev 2109)
@@ -434,12 +434,12 @@
//updateInProgress = true;
indexUpdateMonitor.setUpdateInProgress(true, false);
}
+ boolean flush = false;
try
{
long transactionId = nextTransactionId++;
executeAndLog(new Start(transactionId));
- boolean flush = false;
for (Iterator it = remove.iterator(); it.hasNext();)
{
executeAndLog(new DeleteNode(transactionId, (String)it.next()));
@@ -459,6 +459,11 @@
// flush whole index when volatile index has been commited.
if (flush)
{
+ // if we are going to flush, need to set persistent update
+ synchronized (updateMonitor)
+ {
+ indexUpdateMonitor.setUpdateInProgress(true, true);
+ }
flush();
}
}
@@ -467,7 +472,8 @@
synchronized (updateMonitor)
{
//updateInProgress = false;
- indexUpdateMonitor.setUpdateInProgress(false, false);
+
+ indexUpdateMonitor.setUpdateInProgress(false, flush);
updateMonitor.notifyAll();
releaseMultiReader();
}
Show replies by date