Return-Path: Delivered-To: apmail-jackrabbit-dev-archive@www.apache.org Received: (qmail 9312 invoked from network); 31 Mar 2006 09:41:38 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 31 Mar 2006 09:41:38 -0000 Received: (qmail 78819 invoked by uid 500); 31 Mar 2006 09:41:34 -0000 Delivered-To: apmail-jackrabbit-dev-archive@jackrabbit.apache.org Received: (qmail 78789 invoked by uid 500); 31 Mar 2006 09:41:34 -0000 Mailing-List: contact dev-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 dev@jackrabbit.apache.org Received: (qmail 78780 invoked by uid 99); 31 Mar 2006 09:41:34 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 31 Mar 2006 01:41:34 -0800 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests= X-Spam-Check-By: apache.org Received-SPF: pass (asf.osuosl.org: local policy) Received: from [212.145.136.153] (HELO smtp.germinus.com) (212.145.136.153) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 31 Mar 2006 01:41:33 -0800 Received: (qmail 24171 invoked by uid 0); 31 Mar 2006 09:41:14 -0000 Received: from 212.145.136.152 by smtp.germinus.com (envelope-from , uid 7007) with qmail-scanner-1.24 ( Clear:RC:1(212.145.136.152):. Processed in 2.909564 secs); 31 Mar 2006 09:41:14 -0000 Received: from unknown (HELO mailbox.in.germinus.com) ([212.145.136.152]) (envelope-sender ) by 0 (qmail-ldap-1.03) with SMTP for ; 31 Mar 2006 09:41:11 -0000 Received: (qmail 10198 invoked by uid 7007); 31 Mar 2006 09:40:56 -0000 Received: from unknown (HELO [192.168.0.44]) (agonzalez@[192.168.0.44]) (envelope-sender ) by 0 (qmail-ldap-1.03) with SMTP for ; 31 Mar 2006 09:40:56 -0000 Message-ID: <442CF927.4020502@germinus.com> Date: Fri, 31 Mar 2006 11:40:55 +0200 From: Alvaro Gonzalez User-Agent: Mozilla Thunderbird 1.0.7 (X11/20051011) X-Accept-Language: en-us, en MIME-Version: 1.0 To: dev@jackrabbit.apache.org Subject: Jackrabbit 1.0 RC3 and references to versions Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N Hi all, I have downloaded jackrabbit-1.0-rc3 and tested with my application. Almost everything works fine but i have discovered a problem with jcr:deref queries (yes I am "jcr:deref-boy" :- )). In my application there are several nodes that have a reference property to a version of a particular node (actually a reference to jcr:frozenNode). Prior to 1.0-rc3 version works fine, but with the last release a query searching for this nodes returns 0 results. I don't know if it is correct to use references to nodes in the version workspace or it is a problem of the Query Manager. I have tested it with version 0.9-rc1-incubating and with some house-made versions and it worked well. Here is a a JUnit method that tests this issue: public void testVersionDerefSearch() throws Exception { Session currentSession = JCRUtil.currentSession(); Node myRootNode = currentSession.getRootNode().addNode("root"); currentSession.save(); try { Node referenced = myRootNode.addNode("referenced"); referenced.addMixin("mix:versionable"); currentSession.save(); Version version = referenced.checkin(); Node referencedVersionNode = version.getNode("jcr:frozenNode"); Value referenceValue = currentSession.getValueFactory().createValue(referencedVersionNode); Node referencer = myRootNode.addNode("referencer"); referencer.setProperty("aReference",referenceValue); currentSession.save(); String query="/"+myRootNode.getPath()+"/*[@aReference]/jcr:deref(@aReference,'*')"; QueryManager qm = currentSession.getWorkspace().getQueryManager(); Query q = qm.createQuery(query, Query.XPATH); QueryResult qr = q.execute(); NodeIterator ni = qr.getNodes(); assertEquals("Must find one result in query",1,ni.getSize()); while (ni.hasNext()) { Node node = (Node) ni.next(); assertTrue(node.getProperty("jcr:frozenUuid").getString().equals(referenced.getUUID())); } } finally { myRootNode.remove(); } } Regards, Alvaro