Uploaded image for project: 'Spring Integration'
  1. Spring Integration
  2. INT-2771

AbstractReplyProducingMessageHandler.RequestHandler has to be 'public'

    Details

    • Type: Defect
    • Status: Resolved
    • Priority: Major
    • Resolution: Complete
    • Affects Version/s: 2.2 RC1
    • Fix Version/s: 2.2 RC2
    • Component/s: Core
    • Labels:
    • Environment:
      Windows 7; JBOSS AS 6; JAVA 1.6; WEB-app

      Description

      A piece of the StackTrace:

      Caused by: java.lang.IllegalAccessError: class org.springframework.integration.handler.$Proxy144 cannot access its superinterface org.springframework.integration.handler.AbstractReplyProducingMessageHandler$RequestHandler
      at java.lang.reflect.Proxy.defineClass0(Native Method)
      at java.lang.reflect.Proxy.getProxyClass(Proxy.java:504)
      at java.lang.reflect.Proxy.newProxyInstance(Proxy.java:581)
      at org.springframework.aop.framework.JdkDynamicAopProxy.getProxy(JdkDynamicAopProxy.java:117)
      at org.springframework.aop.framework.ProxyFactory.getProxy(ProxyFactory.java:112)
      at org.springframework.integration.handler.AbstractReplyProducingMessageHandler.onInit(AbstractReplyProducingMessageHandler.java:123)

      I think, the real issue appears from 'parent-child' ClassLoaders inside the AS environment, where Spring jars are loaded from the server /lib directory with one ClassLoaders and war - from the the /deploy with another isolated ClassLoaders. So, the Proxy is created in the web-app in one ClassLoaders, but its private interface is in the another.
      I don't know how to reproduce it within the test-case in the project, but change access level of RequestHandler to *public*really fix the problem.

        Attachments

          Activity

            People

            • Assignee:
              abilan Artem Bilan
              Reporter:
              abilan Artem Bilan
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Time Tracking

                Estimated:
                Original Estimate - 1h
                1h
                Remaining:
                Remaining Estimate - 0d
                0d
                Logged:
                Time Spent - 1h
                1h