Uploaded image for project: 'WildFly Core'
  1. WildFly Core
  2. WFCORE-3512

ClassReflectionIndexUtil does not return default methods from findMethod

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • 4.0.0.Alpha7
    • None
    • Server
    • None

      This problem is in Wildfly Core, but manifests as an issue with EJB's in WildFly full.

      Given the following class/interface inheritance structure, the interface method doMagic could not be called from a remote view, even if there is a default implementation as given in the mixin interface. A local call works, but the remote call fails with a message like

      org.jboss.invocation.CannotProceedException: INV000002: Invocation cannot proceed (end of interceptor chain has been hit)
      

      Example code:

      @Remote
      interface MyEJBInterface {
         void doMagic();
      }
      
      interface MyEJBMixin extends MyEJBInterface {
         default void doMagic() { .... }
      }
      
      @Stateless
      class MyEJBBean extends MyEJBMixin {
      }
      
      

      The problem is inside the fix for WFLY-4354 bug, which checks only for the default method implementation in the interface declaring the method the first time but not in other interfaces.
      A example is attached and I will submitt a pull request with a fix.

        1. wildfly-ejb-in-ear-ear.ear
          12 kB
          Daniel Bildhauer

              sdouglas1@redhat.com Stuart Douglas (Inactive)
              bda-shd.de Daniel Bildhauer (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: