Re: xalan usage in taglibs

Matthew Broadhead <[email protected]> Mon, 27 Nov 2017 09:07:15 +0100
Newsgroups gmane.comp.jakarta.taglibs.user
Message-ID <[email protected]>
In TomEE 7.0.3 everything is fine at startup.  But if a webapp is 
reloaded I get
java.lang.ClassCastException: org.apache.xml.dtm.ref.DTMManagerDefault 
cannot be cast to org.apache.xml.dtm.DTMManager
and the whole container needs to be restarted which is not ideal during 
production

Now in TomEE 7.0.4 I cannot even start without this error so I cannot 
upgrade.

It seems like a classloader issue but taglibs is the only hardcoded 
dependency on xalan

On 27/11/2017 01:12, Jeremy Boynes wrote:
>> On Nov 26, 2017, at 2:17 PM, Matthew Broadhead <[email protected]> wrote:
>>
>> So to run the tests I could reverse the changes of the commit and then update to javax.xml.* and run tests?
>>
>> I am still struggling a bit to understand exactly what is happening wrt VariableStack and how I can change over to XPathVariableResolver.  And also don't see a way to replace XBoolean, XNumber, XString etc...
>>
>> I will keep trying things.   Can I come back to you with specific queries?
> I did experiment with a pure JAXP based solution - there’s a patch <https://bz.apache.org/bugzilla/attachment.cgi?id=26445&action=diff> attached to #27717 that might be a place to start from. You may need to roll back a bit to get it to apply.
>
>  From what I remember, the performance problem stemmed from the evaluation of XPath inside the loop, with both Xalan and JAXP (which used a shaded version of Xalan) reinitializing the DTM each time leading to N * N scaling. The fix was to use Xalan’s API directly to convert the document’s DOM to a DTM once and then apply the XPath against the DTM each time leading to 1 * N scaling.
>
> The downside is that there was a direct dependency on Xalan 2.7.1. I think we tried using 2.7.2 but there was some other problem with that I can’t find at the moment. Given the stability of Xalan/Xerces, what’s causing the conflict with FOP?