diff --git a/source/java/org/alfresco/repo/domain/node/AbstractNodeDAOImpl.java b/source/java/org/alfresco/repo/domain/node/AbstractNodeDAOImpl.java index 18224eaccc..1bbed247a6 100644 --- a/source/java/org/alfresco/repo/domain/node/AbstractNodeDAOImpl.java +++ b/source/java/org/alfresco/repo/domain/node/AbstractNodeDAOImpl.java @@ -1937,9 +1937,6 @@ public abstract class AbstractNodeDAOImpl implements NodeDAO, BatchingDAO nodeUpdateEntity.setAclId(aclId); nodeUpdateEntity.setUpdateAclId(true); updateNodeImpl(oldNode, nodeUpdateEntity, null); - // Node must be indexed. - // Calls to this method are usually made directly - nodeIndexer.indexUpdateNode(oldNode.getNodeRef()); // Fix MNT-8485 and refix MNT-3337 } public void setPrimaryChildrenSharedAclId( diff --git a/source/java/org/alfresco/repo/node/db/DbNodeServiceImpl.java b/source/java/org/alfresco/repo/node/db/DbNodeServiceImpl.java index 2d58fff144..854c170e21 100644 --- a/source/java/org/alfresco/repo/node/db/DbNodeServiceImpl.java +++ b/source/java/org/alfresco/repo/node/db/DbNodeServiceImpl.java @@ -1268,7 +1268,7 @@ public class DbNodeServiceImpl extends AbstractNodeServiceImpl invokeOnDeleteNode( nodeToDelete.primaryParentAssocPair.getSecond(), childNodeTypeQName, childAspectQnames, archive); - nodeIndexer.indexDeleteNode(childAssocRef); + nodeIndexer.indexDeleteNode(nodeToDelete.primaryParentAssocPair.getSecond()); } // Clear out the list of nodes pending delete diff --git a/source/test-java/org/alfresco/repo/search/impl/lucene/ADMLuceneTest.java b/source/test-java/org/alfresco/repo/search/impl/lucene/ADMLuceneTest.java index ef1211a869..44a4fc7a67 100644 --- a/source/test-java/org/alfresco/repo/search/impl/lucene/ADMLuceneTest.java +++ b/source/test-java/org/alfresco/repo/search/impl/lucene/ADMLuceneTest.java @@ -7772,6 +7772,62 @@ public class ADMLuceneTest extends TestCase implements DictionaryListener } + public void test_MNT_10796() throws Exception + { + String contentName = "testContent7.txt"; + String quary = "cm:name:\"" + contentName + "\""; + this.authenticationComponent.setCurrentUser("admin"); + + SearchParameters sp = new SearchParameters(); + sp.setLanguage(SearchService.LANGUAGE_FTS_ALFRESCO); + sp.setQuery(quary); + sp.addStore(rootNodeRef.getStoreRef()); + sp.excludeDataInTheCurrentTransaction(false); + + ResultSet results; + ResultSetMetaData md; + + results = serviceRegistry.getSearchService().query(sp); + assertEquals(0, results.length()); + results.close(); + + Map properties = new HashMap(); + + properties.put(ContentModel.PROP_NAME, "folder"); + NodeRef folder = nodeService.createNode(rootNodeRef, ASSOC_TYPE_QNAME, QName.createQName("{namespace}MNT-10796"), ContentModel.TYPE_FOLDER, properties).getChildRef(); + //System.out.println("folder=" + folder.toString()); + + properties.put(ContentModel.PROP_NAME, "folder2"); + NodeRef folder2 = nodeService.createNode(folder, ASSOC_TYPE_QNAME, QName.createQName("{namespace}MNT-10796"), ContentModel.TYPE_FOLDER, properties).getChildRef(); + //System.out.println("folder2=" + folder2.toString()); + + properties.put(ContentModel.PROP_NAME, contentName); + NodeRef testContent = nodeService.createNode(folder2, ASSOC_TYPE_QNAME, QName.createQName("{namespace}MNT-10796"), ContentModel.TYPE_CONTENT, properties).getChildRef(); + //System.out.println("testContent=" + testContent.toString()); + + sp = new SearchParameters(); + sp.setLanguage(SearchService.LANGUAGE_FTS_ALFRESCO); + sp.setQuery(quary); + sp.addStore(rootNodeRef.getStoreRef()); + sp.excludeDataInTheCurrentTransaction(false); + + results = serviceRegistry.getSearchService().query(sp); + assertEquals(1, results.length()); + results.close(); + + nodeService.deleteNode(folder); + + sp = new SearchParameters(); + sp.setLanguage(SearchService.LANGUAGE_FTS_ALFRESCO); + sp.setQuery(quary); + sp.addStore(rootNodeRef.getStoreRef()); + sp.excludeDataInTheCurrentTransaction(false); + + results = serviceRegistry.getSearchService().query(sp); + assertEquals(0, results.length()); + results.close(); + } + private void runPerformanceTest(double time, boolean clear) { ADMLuceneIndexerImpl indexer = ADMLuceneIndexerImpl.getUpdateIndexer(rootNodeRef.getStoreRef(), "delta" + System.currentTimeMillis() + "_" + (new Random().nextInt()),