sdx-developers
[Top][All Lists]
Advanced

[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




reply via email to

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