How to find the source of a Xerces error (FWK)

Le
Raphael Tagliani
(english version below)
Bonjour!

Je travaille sur un gros projet java, qui parse beaucoup de fichiers xml
au lancement d'un serveur.
Nous avons un problème de concurrence qu lancement.

En fait, il s'agit d'une erreur Xerces FWK005, et nous sommes incapables
de trouver d'où elle provient dans le code. Nous avons déjà essayé de
rendre toutes les méthodes qui appellent Xerces synchronized, mais celà
n'a rien changé.

Donc ma question: sauriez-vous comment traquer cette erreur? Existe-t'il
un moyen de trouver quelles sont les méthodes qui appellent xerces de
façon concurrente (un debugger qui écouterait les appels à xerces, p.ex)?

L'erreur:

Caused by: org.xml.sax.SAXException: FWK005 parse may not be called
while parsing.
at
com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown
Source)

http://acroyear.blog-city.com/xerces_and_the_dreaded_fwk005.htm

-
Hi everyone!

I'm on a big java project, which parses a lot of xml files at the launch
of a server.
The problem is, we have a concurrency problem at the launch.

In fact, it's a FWK005 Xerces error, and we can't find out from where it
comes from. We already tried to make every method calling Xerces
'synchronized', but no change!

Here is my question: would you know how to find this error? How to know
which method calls xerces in a concurrent way (maybe a debugger which
would listen the calls to xerces)?

The error:

Caused by: org.xml.sax.SAXException: FWK005 parse may not be called
while parsing.
at
com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown
Source)

http://acroyear.blog-city.com/xerces_and_the_dreaded_fwk005.htm
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Joe Kesselman
Le #221699
Since your question is specifically about Xerces, I would strongly
recommend that you ask on the Xerces mailing list over at Apache. That's
the subgroup of our community most likely to know the details of Xerces'
internal error messages.

One thought: You ask
How to know which method calls xerces in a concurrent way
... Calling printStackTrace() on that SAXException should tell you what
was running at the time the problem was detected. Other than that...
yes, I'd fire it up under a debugger and let the code itself help me
figure out what's going on.

--
() ASCII Ribbon Campaign | Joe Kesselman
/ Stamp out HTML e-mail! | System architexture and kinetic poetry
TestMan
Le #221662
Bonjour!

Je travaille sur un gros projet java, qui parse beaucoup de fichiers xml
au lancement d'un serveur.
Nous avons un problème de concurrence qu lancement.

En fait, il s'agit d'une erreur Xerces FWK005, et nous sommes incapables
de trouver d'où elle provient dans le code. Nous avons déjà essayé de
rendre toutes les méthodes qui appellent Xerces synchronized, mais celà
n'a rien changé.

Donc ma question: sauriez-vous comment traquer cette erreur? Existe-t'il
un moyen de trouver quelles sont les méthodes qui appellent xerces de
façon concurrente (un debugger qui écouterait les appels à xerces, p.ex)?

L'erreur:

Caused by: org.xml.sax.SAXException: FWK005 parse may not be called
while parsing.
at
com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown
Source)

http://acroyear.blog-city.com/xerces_and_the_dreaded_fwk005.htm


Bonjour,

Récupérez toutes les sources de tous les composants utilisés (même
version exacte).
Configurez votre EDI pour qu'il pointe vers les sources et active le
suivit pour le paquet correspondant aux classes incriminées.
Commencer par poser un point d'arret dynamique sur org.xml.sax.SAXException.
Passez vos VM/serveur d'appli en mode debug et suivre le comportement
lors du déroulement du cas de test.

Avez-vous également testé avec la 2.8.0 de Xerces en remplacement de
celle livré par le JDK par défaut (2.6.2 pour le dernier Java SE 5.0) ?
(via "standard extention" ou "endorsed

Ensuite, vous pouvez essayer d'utilisez un pool de parser à la façon de :
http://www-128.ibm.com/developerworks/xml/library/x-perfap2.html

Si tout celà ne marche pas, postez ici la trace complète de l'exécution.

A+
TM

Publicité
Poster une réponse
Anonyme