sdx-users
[Top][All Lists]
Advanced

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

RE: [sdx-users] java.io.IOException: Already closed


From: Emmanuel Bégué
Subject: RE: [sdx-users] java.io.IOException: Already closed
Date: Fri, 10 Jul 2009 10:36:04 +0200

Bonjour,

J'ai un peu mieux cerné le problème décrit dans le message
ci-dessous: en fait l'erreur "Already closed" se produit
lorsque le jar Lucene 1.4.3 est présent sur le classpath
(en plus de celui fourni avec cette version de sdx, qui
s'appelle "lucene-patched-builddate").

Sur cette installation il n'est pas possible que ce jar ne
soit pas présent, donc il faudrait réussir à faire cohabiter
cette version de SDX et ce jar.

=> quelle est la version de Lucene qui est patchée dans la
   version 2.2 de SDX et quel était l'objet du patch?


Je soupçonne la classe LuceneDataStore/recycleSearcher d'être
à l'origine du problème, car elle est signalée par l'exception

java.io.IOException: Already closed
 at fr.gouv.culture.sdx.exception.SDXException.log(SDXException.java:115)
 at fr.gouv.culture.sdx.exception.SDXException.<init>(SDXException.java:103)
 at 
fr.gouv.culture.sdx.utils.lucene.LuceneDataStore.recycleSearcher(LuceneDataStore.java:149)
 at 
fr.gouv.culture.sdx.utils.lucene.LuceneDataStore.init(LuceneDataStore.java:102)
 at 
fr.gouv.culture.sdx.search.lucene.query.LuceneIndex.mergeBatch(LuceneIndex.java:471)
 at 
fr.gouv.culture.sdx.documentbase.LuceneDocumentBase.compactSearchIndex(LuceneDocumentBase.java:395)
 at 
fr.gouv.culture.sdx.documentbase.SDXDocumentBase.index(SDXDocumentBase.java:1069)
 at 
fr.gouv.culture.sdx.documentbase.SDXDocumentBase.index(SDXDocumentBase.java:761)

et on y trouve:

 try {
   if (this.searcher != null)
   //freeing resources
   //TODO?:but what if an external call has already closed the
   //searcher or the searcher is in use?-rbp
   this.searcher.close();

Le commentaire "TODO" semble prophétique... (mais le test
sur null devrait éviter de fermer quelque chose qui est déjà
fermé?)

J'ai essayé de commenter "this.searcher.close()" mais j'ai
alors une NPE générale (même pour une simple recherche).

Des pistes?

Merci,
Cordialement,
EB

> -----Original Message-----
> From: address@hidden
> [mailto:address@hidden
> On Behalf Of Emmanuel Bégué
> Sent: Tuesday, July 07, 2009 5:53 PM
> To: address@hidden
> Subject: [sdx-users] java.io.IOException: Already closed
> 
> 
> Bonjour,
> 
> Suite à une migration de plateforme d'une installation de SDX 2.2
> datant de 2004, on rencontre l'erreur en objet suite à toute
> tentative d'indexation:
> 
>   <sdx:message>
>   Unable to get a searcher object for the Lucene index located
>   at (...)
>   </sdx:message>
> 
>   <sdx:originalException>
>   java.io.IOException: Already closed at (...)
> 
> Cette erreur interdit ensuite d'accéder aux fichiers d'index
> même en lecture; la recherche donne l'erreur suivante:
> 
>   <sdx:message>Unable to execute the query, "(+sdxall:1)":
>   Unable to read the search index of 
> address@hidden:
>   Bad file descriptor</sdx:message>
> 
>   <sdx:originalException>
>   java.io.IOException: Bad file descriptor
>   at fr.gouv.culture.sdx.exception.SDXException.log
>   at (...)
> 
> (Mais on peut rechercher tant qu'on n'a pas (ré-)indexé; il semblerait
> que ce soit la fusion des index temporaire et principal qui crée
> le problème).
> 
> 
> La recherche de "java.io.IOException: Already closed" dans
> Google donne des exemples divers qui concernent Lucene 2.0
> (ici on est en 1.4) avec un JDK 1.5.x (ici on est en 1.4.2)...
> 
> Est-ce que quelqu'un a déjà rencontré cette erreur et aurait des
> pistes pour la résoudre...?
> 
> Merci,
> Cordialement,
> Emmanuel Bégué
> 
> 
> 
> 
> 
> 
> _______________________________________________
> sdx-users mailing list
> address@hidden
> http://lists.nongnu.org/mailman/listinfo/sdx-users





reply via email to

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