Return-Path: X-Original-To: apmail-jackrabbit-commits-archive@www.apache.org Delivered-To: apmail-jackrabbit-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 5C75A998D for ; Tue, 6 Dec 2011 08:45:13 +0000 (UTC) Received: (qmail 63509 invoked by uid 500); 6 Dec 2011 08:45:13 -0000 Delivered-To: apmail-jackrabbit-commits-archive@jackrabbit.apache.org Received: (qmail 63468 invoked by uid 500); 6 Dec 2011 08:45:11 -0000 Mailing-List: contact commits-help@jackrabbit.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@jackrabbit.apache.org Delivered-To: mailing list commits@jackrabbit.apache.org Received: (qmail 63456 invoked by uid 99); 6 Dec 2011 08:45:09 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 06 Dec 2011 08:45:09 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 06 Dec 2011 08:45:06 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 6112123889E7; Tue, 6 Dec 2011 08:44:44 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1210826 - in /jackrabbit/trunk/jackrabbit-core/src: main/java/org/apache/jackrabbit/core/query/lucene/ test/java/org/apache/jackrabbit/core/query/ test/java/org/apache/jackrabbit/core/query/lucene/ Date: Tue, 06 Dec 2011 08:44:44 -0000 To: commits@jackrabbit.apache.org From: alexparvulescu@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20111206084444.6112123889E7@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: alexparvulescu Date: Tue Dec 6 08:44:43 2011 New Revision: 1210826 URL: http://svn.apache.org/viewvc?rev=1210826&view=rev Log: JCR-3160 Session#move doesn't trigger rebuild of parent node aggregation Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/SearchIndex.java jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/query/AbstractQueryTest.java jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/query/lucene/SQL2IndexingAggregateTest.java Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/SearchIndex.java URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/SearchIndex.java?rev=1210826&r1=1210825&r2=1210826&view=diff ============================================================================== --- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/SearchIndex.java (original) +++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/SearchIndex.java Tue Dec 6 08:44:43 2011 @@ -633,7 +633,6 @@ public class SearchIndex extends Abstrac if (state != null) { NodeId id = state.getNodeId(); addedIds.add(id); - removedIds.remove(id); retrieveAggregateRoot(state, aggregateRoots); try { Modified: jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/query/AbstractQueryTest.java URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/query/AbstractQueryTest.java?rev=1210826&r1=1210825&r2=1210826&view=diff ============================================================================== --- jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/query/AbstractQueryTest.java (original) +++ jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/query/AbstractQueryTest.java Tue Dec 6 08:44:43 2011 @@ -214,12 +214,12 @@ public class AbstractQueryTest extends A // check if all expected are in result for (Iterator it = expectedPaths.iterator(); it.hasNext();) { String path = it.next(); - assertTrue(path + " is not part of the result set", resultPaths.contains(path)); + assertTrue(path + " is not part of the result set "+ expectedPaths, resultPaths.contains(path)); } // check result does not contain more than expected for (Iterator it = resultPaths.iterator(); it.hasNext();) { String path = it.next(); - assertTrue(path + " is not expected to be part of the result set", expectedPaths.contains(path)); + assertTrue(path + " is not expected to be part of the result set " + expectedPaths, expectedPaths.contains(path)); } } Modified: jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/query/lucene/SQL2IndexingAggregateTest.java URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/query/lucene/SQL2IndexingAggregateTest.java?rev=1210826&r1=1210825&r2=1210826&view=diff ============================================================================== --- jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/query/lucene/SQL2IndexingAggregateTest.java (original) +++ jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/query/lucene/SQL2IndexingAggregateTest.java Tue Dec 6 08:44:43 2011 @@ -219,6 +219,41 @@ public class SQL2IndexingAggregateTest e } /** + * JCR-3160 - Session#move doesn't trigger rebuild of parent node + * aggregation + */ + public void testAggregateMove() throws Exception { + + String sql = "SELECT * FROM [nt:folder] as f" + + " WHERE ISDESCENDANTNODE([" + testRoot + "])" + + " AND CONTAINS (f.*, 'dog')"; + + Node folderA = testRootNode.addNode("folderA", "nt:folder"); + Node folderB = testRootNode.addNode("folderB", "nt:folder"); + + ByteArrayOutputStream out = new ByteArrayOutputStream(); + Writer writer = new OutputStreamWriter(out, "UTF-8"); + writer.write("the quick brown fox jumps over the lazy dog."); + writer.flush(); + + Node file = folderA.addNode("myFile", "nt:file"); + Node resource = file.addNode("jcr:content", "nt:resource"); + resource.setProperty("jcr:lastModified", Calendar.getInstance()); + resource.setProperty("jcr:encoding", "UTF-8"); + resource.setProperty("jcr:mimeType", "text/plain"); + resource.setProperty("jcr:data", session.getValueFactory() + .createBinary(new ByteArrayInputStream(out.toByteArray()))); + + testRootNode.getSession().save(); + executeSQL2Query(sql, new Node[] { folderA }); + + testRootNode.getSession().move(file.getPath(), + folderB.getPath() + "/myFile"); + testRootNode.getSession().save(); + executeSQL2Query(sql, new Node[] { folderB }); + } + + /** * By default, the recursive aggregation is turned off. * * The aggregation hierarchy is defined in