Uploaded image for project: 'Weld'
  1. Weld
  2. WELD-301

ProducerMethod.checkProducerMethod only checked method declarations in direct implemented interface and not super interfaces

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Critical
    • 1.0.1.CR1
    • 1.0.0.GA
    • None
    • None

    Description

      I am investigating the deployment failure when running org.jboss.jsr299.tck.tests.implementation.producer.method.definition.enterprise.EnterpriseProducerMethodDefinitionTest.

      The deployment failed due to some validation failure in weld RI code. It complains that produceLightYellowPear method of LightYellowPearTree is not declared in LightYellowPearTree business interface. But LightYellowTree implements LightYellowPearTreeLocal which extends from PearTreeLocal which delares the produceLightYellowPear method.

      This seems a weld RI bug to me after stepping into the RI code:
      In ProducerMethod.checkProducerMethod, when it's a session bean, it will check for its implemented interface and super class for whether they declared this business method. But the problem is it only goes to its direct implemented interface and not the interface hierarchy. In this case it's true that the LightYellowPearTreeLocal does not declare this method, but PearTreeLocal which the LightYellowPearTreeLocal extends from does declare this method. The RI code should be modified to check for the whole interface hierarchy and not just the direct implemented interface.

      Attachments

        Issue Links

          Activity

            People

              pmuiratbleepbleep Pete Muir (Inactive)
              hzhang_jb Hong Zhang (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: