You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jackrabbit.apache.org by Cédric Damioli <ce...@anyware-services.com> on 2011/08/05 16:57:41 UTC

Getting real query results size instead of -1

Hi team,

I'm migrating an app from JR 1.6.4 to 2.2.7.
My unit tests don't pass anymore, because of the well-known behaviour of 
QueryResult.getSize() returning -1 in many cases.
Moreover, I have a query returning no results 
(result.getNodes().hasNext() returns false), but the getSize() still 
returns -1 !
I know there's some workaround ("order by @jcr:score descending"), but 
it seems quite a hack to me.

Diving into the code, I looked at QueryResultImpl#getResult(long) and 
was wondering why the numResults (which at the end is the value returned 
by getSize()) is given the value of result.getSize() (which often 
returns -1) and not the value of resultNodes.size() (though only 
relevant when all results have been fetched, which is often the case 
with a default fetch size of Integer.MAX_VALUE !).

I am not sure to fully understand that piece of code, so don't hesitate 
to tell me that I'm totally wrong :)

Best regards,

-- 
Cédric Damioli
CMS Ametys
ANYWARE SERVICES
http://www.anyware-services.com
http://www.ametys.org

Ce message et toutes les pièces jointes (le "Message") sont confidentiels et établis à l'intention exclusive de ses destinataires.
Toute modification, édition, utilisation ou diffusion non autorisée est interdite.
Anyware Services décline toute responsabilité au titre de ce Message s'il a été altéré, déformé, falsifié ou édité, diffusé sans autorisation.