tapestry-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Robert Zeigler (JIRA)" <j...@apache.org>
Subject [jira] Commented: (TAP5-745) Remove Woodstox-specific Stax implementation usage
Date Thu, 02 Jul 2009 03:50:48 GMT

    [ https://issues.apache.org/jira/browse/TAP5-745?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12726310#action_12726310
] 

Robert Zeigler commented on TAP5-745:
-------------------------------------

So, after dealing with various dependency issues, I've run into the following interesting
situation.

If I supply the stax dependency with woodstox (scope: testing), all of the dtd-related tests
fail.  Looking closer, the dtd element is recognized, but reader.getText() returns an empty
string (according to the stax api, it should return the DTD string).  If I supply the stax
dependency with stax:stax (1.2.0), I get an exception, with the parser complaining that "this
implementation does not resolve external entities".  I'll look at this more tomorrow, but
I'm open to suggestions.

> Remove Woodstox-specific Stax implementation usage
> --------------------------------------------------
>
>                 Key: TAP5-745
>                 URL: https://issues.apache.org/jira/browse/TAP5-745
>             Project: Tapestry 5
>          Issue Type: Bug
>          Components: tapestry-core
>    Affects Versions: 5.1.0.0, 5.1.0.1, 5.1.0.2, 5.1.0.3, 5.1.0.4, 5.1.0.5, 5.1
>            Reporter: Christian Köberl
>            Assignee: Robert Zeigler
>            Priority: Critical
>         Attachments: TAP5-745-5.1.0.5.patch
>
>
> Tapestry uses some special extensions to StaX (out of Woodstox) in the template parser.
This leads to the problem that Tapestry will usually not run on any application server because
the appservers will use their own implementation of Stax.
> There is a workaround but a main stream web application framework should run on JEE compatible
web and application servers without tweaking.
> The main problem is in org.apache.tapestry5.internal.services.TemplateParserImpl.<init>(TemplateParserImpl.java:44).
Here, XMLInputFactory2 is asked for an instance - but XMLInputFactory2 does not implement
the method newInstance. This is delegated to XMLInputFactory. So, the original XMLInputFactory
is used - which returns the platform implementation of Stax.
> Workaround:
> Add the system property below to Application Server (either via startup script or admin
console):
> -Djavax.xml.stream.XMLInputFactory=com.ctc.wstx.stax.WstxInputFactory

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message