Hi Sascha,

I've aligned the use of page.skipTo().getPage() and page.getPage().skipTo().

Please see:
https://issues.apache.org/jira/browse/CMIS-994


- Florian


Hi Florian,

items now show up properly.
Thx Florian.

I think I might give some advice to our customers on how to get the
pages properly.
So regarding to your fix the code on client side should look like this:

// initial query with properly set maxItems in operationContext
results = query(statement, searchAllversions, opCtx);

ItemIterable<QueryResult> page = results;

// skip items if necessary ( > 0)
if (skipCount > 0) {
page = page.skipTo(skipCount);
}

// get the page of ‘maxHits' items
page = page.getPage(maxHits);

// iterate through all items on the page
for (QueryResult qr : page) {
...
}

Right?

tia

Cheers
Sascha

P. +84 166 456-3331
shome...@apollon.de

turning technology.

apollon GmbH+Co. KG
Maximilianstr. 104
75172 Pforzheim / Germany
www.apollon.de

Geschäftsführer: Eugen Müller (Vors.), Ingrid Müller (stv. Vors.),
Peter Schellhorn, Norbert Weckerle
Amtsgericht Mannheim HRA 500441
PhG: Meyle+Müller Verwaltungs-GmbH HRB 500138

apollon auf der dmexco Köln 14./15. September 2016
Halle 6.1 / Stand A-064
Schnell Tickets sichern!
On Aug 19, 2016, at 10:27 PM, Florian Müller
<f...@apache.org<mailto:f...@apache.org>> wrote:

Hi Sascha,

You found a bug in the Workbench!
It's now fixed.

Thanks for reporting it!


- Florian


Hi Florian,
thx for the info.
Yes, on server side I only return 5 hits except for the last page
where I only return 1 (total numItems = 16).
I am just a bit confused about the display in the Chemistry Workbench
QueryFrame:
When I set skipCount to 0 with maxHits = 5 it properly only shows up 5
hits.
But when I set skipCount to 5 it fetches all the pages up to the end
and shows 11 hits
In the code of the QueryFrame the ItemIterable (variable “page")
then automatically fetches the next page when getting to the end of
one page.
results = model.query(text, searchAllVersionsCheckBox.isSelected(),
maxHits);
...
ItemIterable<QueryResult> page = results.getPage(maxHits);
for (QueryResult qr : page)
{
// with skipCount > 0 here at every 5th loop the next page is
automatically fetched from server
...
}
...
When I set numItems like Alfresco Demo Server does then it is
displayed properly (Alfresco seems to set numItems to 5 for first
page, 10 for second page and so on …).
But this setting of numItems is wrong when I understood you correctly.
So I am just wondering if I do sth. wrong or this is an issue
elsewhere?
tia
Cheers
Sascha
P.
+84 166 456-3331 [1]
shome...@apollon.de<mailto:shome...@apollon.de>
turning technology.
apollon GmbH+Co. KG
MAXIMILIANSTR. 104 [2]
75172 PFORZHEIM / GERMANY [2]
WWW.APOLLON.DE [3]
Geschäftsführer: Eugen Müller (Vors.), Ingrid Müller (stv. Vors.),
Peter Schellhorn, Norbert Weckerle
Amtsgericht Mannheim HRA 500441
PhG: Meyle+Müller Verwaltungs-GmbH HRB 500138
apollon auf der dmexco Köln 14./15. September 2016
Halle 6.1 / Stand A-064
SCHNELL TICKETS SICHERN! [4]
On Aug 19, 2016, at 5:32 PM, Florian Müller <f...@apache.org>
wrote:
Hi Sascha,
You are right, totalNumItems should stay the same for each page
(assuming that the data in the repository doesn't change).
Some repositories don't always return a value for totalNumItems, but
that's OK from the spec point of view.
If the client sets maxItems to 5 the server MUST NOT return more
than 5 hits. It may return fewer hits (because there are no more
hits or because of any server constraints), but never more.
OpenCMIS doesn't have a TCK test for that, yet. It may be worth
adding one...
- Florian
Hi all,
I am currently struggling with the paging of a query result set.
Did I understand it correctly that “numItems” should contain
the whole
number of items (if the repository knows about it)?
So for example a repository only contains 16 documents all from
type
cmis:document and we have a query like:
“SELECT cmis:name FROM cmis:document ORDER BY cmis:name”
When we set the page size (maxItems) to 5 and the skipCount to 0
then
I assume that the server should pass the first 5 results (the
first
page) and set the numItems to 16.
When we want the second page we set skipCount to 5 (and leave
maxItems
= 5) and still numItems is 16.
Third page with a skipCount of 10 and still numItems = 16. And so
on…
Is this correct?
Cause when I do it this way on the server the QueryFrame in the
CMIS
Workbench gives me 11 hits for skipCount = 5 and maxItems = 5 (the
ItemIterable in the loop just goes through all pages).
I compared with Alfresco CMIS Demo server. For this the Workbench
QueryFrame properly only shows up 5 hits for every page but it
seems
the Alfresco Server does set “numItems” to the summed up
number of
items until current page (numItems = 5 for skipCount = 0, numItems
=
10 for skipCount = 5).
I strongly assume Alfresco is right here.
tia
Cheers
Sascha
P. +84 166 456-3331
shome...@apollon.de
turning technology.
apollon GmbH+Co. KG
Maximilianstr. 104
75172 Pforzheim / Germany
www.apollon.de
Geschäftsführer: Eugen Müller (Vors.), Ingrid Müller (stv.
Vors.),
Peter Schellhorn, Norbert Weckerle
Amtsgericht Mannheim HRA 500441
PhG: Meyle+Müller Verwaltungs-GmbH HRB 500138
apollon auf der dmexco Köln 14./15. September 2016
Halle 6.1 / Stand A-064
Schnell kostenlose Tickets downloaden – nur vom 18.7. bis
15.8.2016
Links:
------
[1] tel:+84%20166%20456-3331
[2]
https://www.google.co.uk/maps/place/Maximilianstra%C3%9Fe+104,+75172+Pforzheim,+Germany/@48.89268,8.67968,17z/data=!3m1!4b1!4m2!3m1!1s0x4797726b6a5de607:0xbb6167336f3c7a96
[3] http://www.apollon.de
[4] http://dmexco.de/tickets/

Reply via email to