[Top][All Lists]
[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
Re: [sdx-users] java.io.IOException: Already closed, Malo Pichot, 2009/07/28