Uploaded image for project: 'JBoss Enterprise Application Platform 4 and 5'
  1. JBoss Enterprise Application Platform 4 and 5
  2. JBPAPP-7267

JBossWeb's ParserUtils uses JAXP in a non-modular classloading compatible way

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • EAP_EWP 5.1.2 ER2
    • EAP_EWP 5.1.1
    • Web
    • None
    • Hide
      When Jasper was using the ParserUtils of JAXP, the calls between the framework's classes and deployment's classes were blocked because they were deliberately isolated from each other. To avoid this problem these calls have been modified so that they work in an isolated environment.
      Show
      When Jasper was using the ParserUtils of JAXP, the calls between the framework's classes and deployment's classes were blocked because they were deliberately isolated from each other. To avoid this problem these calls have been modified so that they work in an isolated environment.
    • Documented as Resolved Issue
    • NEW

      When jasper uses org.apache.jasper.xmlparser.ParserUtils, it uses the no-arg newInstance methods of JAXP. These methods use the TCCL to locate the xml parser. The problem with this approach is the assumption that the framework's classes and the deployment classes are on the same class loader. This assumption works fine if a traditional hierarchical class loader is used. However, it does not work under a modern modular class loading environment, where the goal is to isolate the user's classes from the running environment (supporting for example the ability to use the parser of their choice).

      The simplest solution to this problem is to wrap all no-arg calls with TCCL push-pop to jaspers's defining class loader.

              pskopek@redhat.com Peter Skopek
              rhn-support-bmaxwell Brad Maxwell
              Russell Dickenson Russell Dickenson (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Created:
                Updated:
                Resolved: