Kuali Rice Development
  1. Kuali Rice Development
  2. KULRICE-2125

Fix ContextClassLoader proxy issues in KEWHttpInvokerServiceExporter

    Details

    • Type: Bug Fix Bug Fix
    • Status: Closed Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 0.9.3
    • Component/s: Development
    • Labels:
      None
    • Similar issues:
      KULRICE-1136Fix Proxy Transaction issues within kuali workflow attributes
      KULRICE-362resolve xml proxy issues
      KULRICE-5770XmlObjectSerializerServiceImpl has trouble w/ XStream 1.4.1 and CGLIB proxies
      KULRICE-2674UiDocumentService OJB proxy handling
      KULRICE-5135fix ojb proxies for classes with protected setters
      KULRICE-1506proxy all relationships - in the past 1:1 proxying was limited to chart
      KULRICE-3810JPA - Determine if Open Entity Manager in view filter will fix transaction issues
      KULRICE-2572proxy="true" on EntityPrivacyPreferences causes OJB errors
      KULRICE-359fix issues with references to my_common.js
      KULRICE-7231Figure out how to fix the EBO issue and replace it
    • Rice Module:
      KSB

      Description

      KEWHttpInvokerServiceExporter was wrapping exported services with a ContextClassLoaderProxy using the classloader of this service. This is a bad implementation, instead services should be proxied using the classloader of the context from which they were exported.

      For example, even though a service class might be loaded from the core application, if it is exported inside of a plugin, the context classloader proxy should switch the context classloader to the plugins classloader, not the core applications classloader.

      This was causing ObjectRemotingTest to fail.

        Issue Links

          Activity

          Hide
          Eric Westfall added a comment -

          Solution was to derive classloader at the time the service is exported (in the ServiceDefinition) and then use that derived ClassLoader when creating the proxy in KEWHttpInvokerServiceExporter.

          Show
          Eric Westfall added a comment - Solution was to derive classloader at the time the service is exported (in the ServiceDefinition) and then use that derived ClassLoader when creating the proxy in KEWHttpInvokerServiceExporter.

            People

            • Assignee:
              Eric Westfall
              Reporter:
              Eric Westfall
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Time Tracking

                Estimated:
                Original Estimate - 1 hour
                1h
                Remaining:
                Remaining Estimate - 1 hour
                1h
                Logged:
                Time Spent - Not Specified
                Not Specified

                  Structure Helper Panel