Tapestry 5
  1. Tapestry 5
  2. TAP5-745

Remove Woodstox-specific Stax implementation usage

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Critical Critical
    • Resolution: Won't Fix
    • Affects Version/s: 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
    • Fix Version/s: None
    • Component/s: tapestry-core
    • Labels:
      None

      Description

      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

      1. TAP5-745-5.1.0.5.patch
        5 kB
        Christian Köberl

        Activity

          People

          • Assignee:
            Robert Zeigler
            Reporter:
            Christian Köberl
          • Votes:
            2 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development