Return-Path: X-Original-To: apmail-jackrabbit-users-archive@minotaur.apache.org Delivered-To: apmail-jackrabbit-users-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 98E57C7F7 for ; Tue, 2 Dec 2014 05:18:18 +0000 (UTC) Received: (qmail 73795 invoked by uid 500); 2 Dec 2014 05:18:18 -0000 Delivered-To: apmail-jackrabbit-users-archive@jackrabbit.apache.org Received: (qmail 73735 invoked by uid 500); 2 Dec 2014 05:18:18 -0000 Mailing-List: contact users-help@jackrabbit.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: users@jackrabbit.apache.org Delivered-To: mailing list users@jackrabbit.apache.org Received: (qmail 73723 invoked by uid 99); 2 Dec 2014 05:18:17 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 02 Dec 2014 05:18:17 +0000 X-ASF-Spam-Status: No, hits=1.5 required=5.0 tests=HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of behrangsa@gmail.com designates 209.85.192.51 as permitted sender) Received: from [209.85.192.51] (HELO mail-qg0-f51.google.com) (209.85.192.51) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 02 Dec 2014 05:18:13 +0000 Received: by mail-qg0-f51.google.com with SMTP id l89so8557510qgf.38 for ; Mon, 01 Dec 2014 21:17:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=H8qWnn6tHTHOpYHTpsceRn96N8fOzk0p8/9qjU8CayA=; b=hlbx+zoO3J0spnTw+8pMQU0nXj0joewr8kHmEwDmu/6DESBswWUXypgnbGZMeh34// l0VJLtxLzrEd+Bm8/FI7QFLlXrSsv+Sbh9Oo6f56D101PPYHUG6MbpwRksun6fBwfaV7 T4sDdjNcHgSTpatsW8SnmrNDc/wunBlUepckhf4gkB/UxGcBgbEFRZvyvGEnjDZ9SuYv 1xjn3gcbV9w/TMeB1F7i1zu8zF6Yrk4GyewIBpG3+n+ddM8trwGbmrYIF2wxWsGGUQmq iNuvIFTz+T/pGRObaLe9mmluhElAOKtrDMslmVJ4vgfD+eoHXlc8eZAphGjvShJXrrS/ FjrA== MIME-Version: 1.0 X-Received: by 10.224.129.9 with SMTP id m9mr92813757qas.50.1417497472994; Mon, 01 Dec 2014 21:17:52 -0800 (PST) Received: by 10.96.85.7 with HTTP; Mon, 1 Dec 2014 21:17:49 -0800 (PST) Date: Tue, 2 Dec 2014 16:17:49 +1100 Message-ID: Subject: Getting InvalidItemStateException when invoking a simple SQL2 query From: Behrang Saeedzadeh To: Jackrabbit Users Content-Type: multipart/alternative; boundary=001a11c31812591630050934d98f X-Virus-Checked: Checked by ClamAV on apache.org --001a11c31812591630050934d98f Content-Type: text/plain; charset=ISO-8859-1 Hi, In our application, when we execute the following query: final String statement = "SELECT * FROM [cq:PageContent] AS sites " + + "WHERE ISDESCENDANTNODE([/content/myapp]) AND sites.domainName IS NOT NULL " + "ORDER BY sites.domainName"; final Session session = resourceResolver.adaptTo(Session.class); final QueryManager queryManager = session.getWorkspace().getQueryManager(); final Query query = queryManager.createQuery("", Query.JCR_SQL2); final QueryResult queryResult = query.execute(); Every now and then it throws this exception pasted into this Gist: https://gist.github.com/behrangsa/f0c61eaf029106d676b5 The relevant parts are: Unable to compare rows: { sites: node 297e1b7d-8064-404f-b765-27ba71dff64a } and { sites: node /content/myapp/b9/40/04/778e826b-9ecb-4c32-abae-3f1a4a0effa2/home/jcr:content } org.apache.sling.engine.impl.SlingRequestProcessorImpl at org.apache.jackrabbit.core.query.lucene.sort.RowComparator.compare(RowComparator.java:65) at org.apache.jackrabbit.core.query.lucene.sort.RowComparator.compare(RowComparator.java:35) at java.util.TimSort.binarySort(TimSort.java:265) at java.util.TimSort.sort(TimSort.java:208) at java.util.TimSort.sort(TimSort.java:173) at java.util.Arrays.sort(Arrays.java:659) at java.util.Collections.sort(Collections.java:217) at org.apache.jackrabbit.core.query.lucene.join.QueryEngine.sort(QueryEngine.java:625) at org.apache.jackrabbit.core.query.lucene.join.QueryEngine.execute(QueryEngine.java:484) at org.apache.jackrabbit.core.query.lucene.join.QueryEngine.execute(QueryEngine.java:126) at org.apache.jackrabbit.core.query.lucene.join.QueryEngine.execute(QueryEngine.java:115) at org.apache.jackrabbit.core.query.QueryObjectModelImpl$2.perform(QueryObjectModelImpl.java:129) at org.apache.jackrabbit.core.query.QueryObjectModelImpl$2.perform(QueryObjectModelImpl.java:124) at org.apache.jackrabbit.core.session.SessionState.perform(SessionState.java:216) at org.apache.jackrabbit.core.query.QueryObjectModelImpl.execute(QueryObjectModelImpl.java:123) at au.com.mycomp.myapp.service.sites.DefaultSiteService.getHomePageNodes(DefaultSiteService.java:169) Caused by: javax.jcr.InvalidItemStateException: Item does not exist anymore: 297e1b7d-8064-404f-b765-27ba71dff64a at org.apache.jackrabbit.core.ItemImpl.itemSanityCheck(ItemImpl.java:116) at org.apache.jackrabbit.core.ItemImpl.perform(ItemImpl.java:90) at org.apache.jackrabbit.core.NodeImpl.getProperty(NodeImpl.java:2248) at org.apache.jackrabbit.commons.query.qom.OperandEvaluator.getProperty(OperandEvaluator.java:502) at org.apache.jackrabbit.commons.query.qom.OperandEvaluator.getProperty(OperandEvaluator.java:482) at org.apache.jackrabbit.commons.query.qom.OperandEvaluator.getPropertyValues(OperandEvaluator.java:447) at org.apache.jackrabbit.commons.query.qom.OperandEvaluator.getValues(OperandEvaluator.java:206) at org.apache.jackrabbit.core.query.lucene.sort.RowComparator.compare(RowComparator.java:52) As you can see, while this query is being executed, somewhere inside the Jackrabbit codes, it wants to fetch one of the results contained in the result and compare it with another node, but looks like by that time, that item is already deleted by another thread or in some other way. Is this really the expected behavior or is this a bug? Or are there ways in which we can prevent this from happening? Best regards, Behrang http://www.behrang.org --001a11c31812591630050934d98f--