---
Caused by: org.xml.sax.SAXException: FWK005 parse may
not be called while parsing.
at
com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:253)
at
com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:283)
at
com.ozacc.mail.impl.XMLVelocityMailBuilderImpl.build(XMLVelocityMailBuilderImpl.java:200)
at
com.ozacc.mail.impl.XMLVelocityMailBuilderImpl.buildMail(XMLVelocityMailBuilderImpl.java:136)
---
合が、稀にありました。
---
Caused by: org.xml.sax.SAXException: FWK005 parse may
not be called while parsing.
at
com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:253)
at
com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:283)
at
com.ozacc.mail.impl.XMLVelocityMailBuilderImpl.build(XMLVelocityMailBuilderImpl.java:200)
at
com.ozacc.mail.impl.XMLVelocityMailBuilderImpl.buildMail(XMLVelocityMailBuilderImpl.java:136)
---
XMLVelocityMailBuilderImplは、Seasar2のsingletonとして
利用しています。
追ってみると、
- DocumentBuilderはキャッシュ化されていてどのスレッドか
らも同じインスタンスが取得される。
- DocumentBuilder#parse → DOMParser#parse →
XMLParserConfiguration#parse → (実装クラス)
XML11DTDConfiguration#parse でこけてました。
XML11DTDConfigurationには、fParseInProgressというフラグ
があって、trueの場合(パース中)に他からのparse呼び出し
を防いでしまう(上記例外発生)んですね。。。
AbstractXMLMailBuilder#getDocumentFromClassPath は
synchronizedされていましたので、この点については把握さ
れていると思いますので、漏れでしょうか?
長くなりましたが、不具合報告でした。