sdx-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [sdx-users] Pb de moisson OAI


From: Pierrick Brihaye
Subject: Re: [sdx-users] Pb de moisson OAI
Date: Fri, 26 Aug 2005 17:22:56 +0200
User-agent: Mozilla/5.0 (Windows; U; Win98; fr-FR; rv:1.7.8) Gecko/20050511

Salut,

address@hidden wrote:

La date du build ne veut pas dire grand chose en elle-même car c'est la date des sources qui compte. Cependant, un build 2005082201 n'aurait pas été mal :-)

Presque ! Voici : SDX - version:2.2.1, build:2005070801 (Merci Pierre).

Je suis sûr que tu peux faire mieux :-)

Voici une autre problème : je cherche à moissonner en entrepôt (non SDX).
Avec un navigateur, l'URL
http://172.16.32.241/exl-php/oai/serveur/oai2.php?verb=ListRecords&metadataP
refix=oai_dc me donne ce qu'il faut (fichier joint).

Lorsque c'est une appli SDX qui moissonne, j'obtiens l'exception en fichier
joint, dont voici un aperçu :

ERROR   (2005-08-25) 18:43.39:071   [sdx.framework.moissonneur.notices]
(Unknown-URI) Unknown-thread/OAIUtilities:
http://172.16.32.241/exl-php/oai/serveur/oai2.php?verb=ListRecords&metadataP
refix=oai_dc
java.lang.NullPointerException

Etonnant, ma foi.

Mmmh...

Ce qui nous intéresse, c'est ça :
at fr.gouv.culture.oai.AbstractOAIHarvester.endElement(AbstractOAIHarvester.java:336)

Allons voir la ligne 336 :
http://savannah.nongnu.org/cgi-bin/viewcvs/sdx/sdx_v2/src/java/fr/gouv/culture/oai/AbstractOAIHarvester.java?annotate=1.29.2.8

Elle ne fait que rejeter une exception survenue dans le bloc situé juste avant... Or, ce bloc, relativement ténu, ne peut renvoyer de NPE qu'à partir de :

storeHarvestedData (qui peut "normalement" lancer ProcessingException, IOException, SDXException, SAXException)
saveCriticalFields (qui peut lancer SAXException)
handleResumptionToken (qui est prévu pour ne rien lancer)

Note : il eût été IMHO plus judicieux d'individualiser les types exceptions et de logger en conséquence du côté de la ligne 336.

Tout se passe donc dans :
http://savannah.nongnu.org/cgi-bin/viewcvs/sdx/sdx_v2/src/java/fr/gouv/culture/sdx/oai/AbstractDocumentBaseOAIHarvester.java?annotate=1.24.2.16

storeHarvestedData est à la ligne 644
handleResumptionToken est à la ligne 762
saveCriticalFields est à la ligne 1063

A priori saveCriticalFields est hors de cause car elle relance une SAXException quoi qu'il arrive. Ce n'est pas forcément la meilleure idée, surtout pour traquer une NPE, mais bon...

Les 2 autres, ne relançant pas d'exception, une NPE peut donc tout à fait être transmise dans la pile.

Ne sachant si tu as testé une moisson sur des repos fournissants des resumptionTokens, j'ignore la fiabilité de la méthode handleResumptionToken mais, a priori, elle semble assez robuste puisqu'elle est même prévue pour avaler les NPE :-)

La meilleure candidate serait donc storeHarvestedData. Un bloc catch requi relancerait l'exception avec un petit message de log permetrait de confirmer.

Merci de votre attention. A+

--
Pierrick Brihaye, informaticien
Service régional de l'Inventaire
DRAC Bretagne
mailto:address@hidden
+33 (0)2 99 29 67 78




reply via email to

[Prev in Thread] Current Thread [Next in Thread]