Return-Path: Delivered-To: apmail-jackrabbit-dev-archive@www.apache.org Received: (qmail 69553 invoked from network); 1 Mar 2011 15:34:07 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 1 Mar 2011 15:34:07 -0000 Received: (qmail 80356 invoked by uid 500); 1 Mar 2011 15:34:06 -0000 Delivered-To: apmail-jackrabbit-dev-archive@jackrabbit.apache.org Received: (qmail 79986 invoked by uid 500); 1 Mar 2011 15:34:03 -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 79979 invoked by uid 99); 1 Mar 2011 15:34:02 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 01 Mar 2011 15:34:02 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED,T_RP_MATCHES_RCVD X-Spam-Check-By: apache.org Received: from [140.211.11.116] (HELO hel.zones.apache.org) (140.211.11.116) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 01 Mar 2011 15:33:59 +0000 Received: from hel.zones.apache.org (hel.zones.apache.org [140.211.11.116]) by hel.zones.apache.org (Postfix) with ESMTP id E807146770 for ; Tue, 1 Mar 2011 15:33:36 +0000 (UTC) Date: Tue, 1 Mar 2011 15:33:36 +0000 (UTC) From: "Paul Lysak (JIRA)" To: dev@jackrabbit.apache.org Message-ID: <10520268.5224.1298993616946.JavaMail.tomcat@hel.zones.apache.org> Subject: [jira] Created: (JCR-2906) Multivalued property sorted incorrectly MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 X-Virus-Checked: Checked by ClamAV on apache.org Multivalued property sorted incorrectly --------------------------------------- Key: JCR-2906 URL: https://issues.apache.org/jira/browse/JCR-2906 Project: Jackrabbit Content Repository Issue Type: Bug Components: jackrabbit-core Affects Versions: 2.2.0 Environment: Windows 7, Sun JDK 1.6.0_23 Reporter: Paul Lysak Sorting on multivalued property may produce incorrect result because sorting is performed only by last value of multivalued property. Steps to reproduce: 1. Create multivalued field in repository. Example from nodetypes file: 2. Create few records so that all records except one would contain single value for MyProperty and one record would contain first value which is greater then of any other record and the second value is somewhere in the middle. Here is an example: 1st record: "aaaa" 2nd record: "cccc" 3rd record: "dddd", "bbbb" 3. Run some query which sorts Example of XPath query: //*[...here are some criteria...] order by @MyProperty ascending The query would return documents in such order: "aaaa" "dddd", "bbbb" "cccc" which is not expected order (expected same order as they were entered - as "aaaa" < "cccc", "cccc" < "dddd") After some digging I found out that it happens because method org.apache.jackrabbit.core.query.lucene.SharedFieldCache.getValueIndex (called from org.apache.jackrabbit.core.query.lucene.SharedFieldSortComparator.SimpleScoreDocComparator constructor) returns only last Comparable of the document. Here is overwrites previous value: retArray[termDocs.doc()] = getValue(value, type); I tried to concatenate comparables (just to check if it would work for my case): if(retArray[termDocs.doc()] == null) { retArray[termDocs.doc()] = getValue(value, type); } else { retArray[termDocs.doc()] = retArray[termDocs.doc()] + " " + getValue(value, type); } But it didn't worked well either - TermEnum returns terms not in the same order as JackRabbit returns values of multivalued field (as an example ["qwer", "asdf"] may become ["asdf", "qwer"] ). So, simple concatenation doesn't help. -- This message is automatically generated by JIRA. - For more information on JIRA, see: http://www.atlassian.com/software/jira