Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

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

2 réponses
Avatar
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

2 réponses

Avatar
Joe Kesselman
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
Avatar
TestMan
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