mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-24 17:32:48 +00:00
Fix index bug where deletes at the end if the current TX are not seen
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@2633 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -919,6 +919,9 @@ public class LuceneIndexerImpl extends LuceneBase implements LuceneIndexer
|
||||
throw new LuceneIndexException("Filed to close main reader", e);
|
||||
}
|
||||
}
|
||||
// Make sure deletes are sent
|
||||
closeDeltaReader();
|
||||
// Make sure writes and updates are sent.
|
||||
closeDeltaWriter();
|
||||
}
|
||||
}
|
||||
|
@@ -3025,7 +3025,28 @@ public class LuceneTest extends TestCase
|
||||
runBaseTests();
|
||||
|
||||
serviceRegistry.getNodeService().deleteNode(n1);
|
||||
serviceRegistry.getNodeService().createNode(rootNodeRef, ContentModel.ASSOC_CHILDREN,
|
||||
|
||||
|
||||
sp = new SearchParameters();
|
||||
sp.addStore(rootNodeRef.getStoreRef());
|
||||
sp.setLanguage(SearchService.LANGUAGE_LUCENE);
|
||||
sp.setQuery("PATH:\"//.\"");
|
||||
sp.excludeDataInTheCurrentTransaction(false);
|
||||
results = serviceRegistry.getSearchService().query(sp);
|
||||
assertEquals(5, results.length());
|
||||
results.close();
|
||||
|
||||
sp = new SearchParameters();
|
||||
sp.addStore(rootNodeRef.getStoreRef());
|
||||
sp.setLanguage(SearchService.LANGUAGE_LUCENE);
|
||||
sp.setQuery("PATH:\"//.\"");
|
||||
sp.excludeDataInTheCurrentTransaction(true);
|
||||
results = serviceRegistry.getSearchService().query(sp);
|
||||
assertEquals(15, results.length());
|
||||
results.close();
|
||||
|
||||
|
||||
NodeRef created = serviceRegistry.getNodeService().createNode(rootNodeRef, ContentModel.ASSOC_CHILDREN,
|
||||
QName.createQName("{namespace}texas"), testSuperType).getChildRef();
|
||||
|
||||
sp = new SearchParameters();
|
||||
@@ -3046,6 +3067,27 @@ public class LuceneTest extends TestCase
|
||||
assertEquals(15, results.length());
|
||||
results.close();
|
||||
|
||||
serviceRegistry.getNodeService().deleteNode(created);
|
||||
|
||||
|
||||
sp = new SearchParameters();
|
||||
sp.addStore(rootNodeRef.getStoreRef());
|
||||
sp.setLanguage(SearchService.LANGUAGE_LUCENE);
|
||||
sp.setQuery("PATH:\"//.\"");
|
||||
sp.excludeDataInTheCurrentTransaction(false);
|
||||
results = serviceRegistry.getSearchService().query(sp);
|
||||
assertEquals(5, results.length());
|
||||
results.close();
|
||||
|
||||
sp = new SearchParameters();
|
||||
sp.addStore(rootNodeRef.getStoreRef());
|
||||
sp.setLanguage(SearchService.LANGUAGE_LUCENE);
|
||||
sp.setQuery("PATH:\"//.\"");
|
||||
sp.excludeDataInTheCurrentTransaction(true);
|
||||
results = serviceRegistry.getSearchService().query(sp);
|
||||
assertEquals(15, results.length());
|
||||
results.close();
|
||||
|
||||
tx.rollback();
|
||||
|
||||
sp = new SearchParameters();
|
||||
|
Reference in New Issue
Block a user