Bug 13568 OAI Server doesn't handle properly resumption token
authorFrédéric Demians <f.demians@tamil.fr>
Mon, 12 Jan 2015 11:18:19 +0000 (12:18 +0100)
committerChris Cormack <chrisc@catalyst.net.nz>
Sun, 22 Feb 2015 22:59:22 +0000 (11:59 +1300)
commitdd43df588e39b2d4b379d3ed11e5381bd8a881e0
tree0f53c24f9bc84fc83575e7252e5df9b4332b13e6
parentcc5dfd1039511e156af921bfa2ac6bdb7eb85677
Bug 13568 OAI Server doesn't handle properly resumption token

When responding to ListRecords and ListIdentifiers verbs, OAI server doesn't
return proper resumption token. At the end of a result set, OAI server
generates a resumption token even if there isn't anymore records. Consequently,
OAI harverster will send a new request, based on this invalid resumption,
token. OAI Server responds with an empty resultset, which is considered as an
invalid response by most of the harvesters.

TO TEST:

- Find in your DB, a day where a few biblio records have been created. The
  number of created biblios must inferior to OAI-PMH:MaxCount.

- Let say this day is 2014-01-09. Send an OAI-PMH request to Koha OAI Server:

  /cgi-bin/koha/oai.pl?verb=ListRecords&metadataPrefix=marcxml&from=2014-01-09&until=2014-01-09

- At the end of the result, you will see a resumption token which looks like that:

  <resumptionToken cursor="47">marcxml/47/2014-01-09/2014-01-09/</resumptionToken>

  This is wrong. No resumptiion token should be sent since there isn't anymore
  records to harvest.

- Apply the patch.

- Resend the OAI-PMH request. There is no resumption token at the end of the
  result.

- You could test also with ListIdenfiers verb in place of ListRecord.

Signed-off-by: Christophe Brocquet <christophe.brocquet@obspm.fr>
Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
(cherry picked from commit f1ea9624bd197b04f78750bcc4d8f07ef2f9675d)
Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
opac/oai.pl