[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [sdx-developers] Pb Moisson SDX2.3
From: |
Pierrick Brihaye |
Subject: |
Re: [sdx-developers] Pb Moisson SDX2.3 |
Date: |
Wed, 02 Mar 2005 11:17:51 +0100 |
User-agent: |
Mozilla/5.0 (Windows; U; Win98; fr-FR; rv:1.6) Gecko/20040113 |
Malo Pichot a écrit :
Je ne suis pas capable
de la reproduire quand je veux, mais elle est toujours là. A chaque
fois, la stacktrace termine là-dessus :
fr.gouv.culture.util.apache.cocoon.xml.SynchronizationException: This
synchronized object must be acquired before receiving any SAX events
at
fr.gouv.culture.util.apache.avalon.excalibur.concurrent.Mutex.isAcquired(Mutex.java:27)
at
fr.gouv.culture.util.apache.cocoon.xml.AbstractSynchronizedXMLPipe.comment(AbstractSynchronizedXMLPipe.java:396)
Je comprends qu'un objet doit être synchronisé avant d'être employé et
qu'il ne l'est pas.
OK. Je vois un peu plus ce qui se passe.
Premier point, le nommage de "isAcquired()" est trompeur car ça ne
retourne que true ou une exception. "checkAcquired" serait peut-être
plus opportun.
Ensuite, il manque *la* ligne importante dans ta stacktrace car je me
demande si ce commentaire XML est envoyé à un pipe qui a été acquis.
Il est cependant beaucoup plus probable qu'une exception soit survenue,
ce qui aurait eu pour effet de relâcher le pipe. Une construction de ce
type est visible ici :
public void setDocumentLocator(Locator locator) {
try {
if (this.isAcquired()) {
this.acquireSynchronizedXMLConsumer();
if (super.synchronizedXmlConsumer != null)
super.synchronizedXmlConsumer.setDocumentLocator(locator);
}
} catch (SAXException e) {
this.releaseSynchronizedXMLConsumer();
e.printStackTrace();//TODO ?: what else can be done here?
}
}
IMHO, l'acquisition étant "manuelle" (i.e. dictée par le code), le
relâchement doit être lui aussi manuel. On aurait pu faire l'inverse et
décider d'une auto-acquisition/auto-relâchement, beaucoup plus difficile
à manier toutefois.
Pas trop le temps, mais avec des stacktraces de ce type, on avance plus
vite...
A+
--
Pierrick Brihaye, informaticien
Service régional de l'Inventaire
DRAC Bretagne
mailto:address@hidden
+33 (0)2 99 29 67 78