[weld-issues] [JBoss JIRA] Issue Comment Edited: (WELD-301) ProducerMethod.checkProducerMethod only checked method declarations in direct implemented interface and not super interfaces

Pete Muir (JIRA) jira-events at lists.jboss.org
Sat Nov 21 13:39:29 EST 2009


    [ https://jira.jboss.org/jira/browse/WELD-301?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12495953#action_12495953 ] 

Pete Muir edited comment on WELD-301 at 11/21/09 1:38 PM:
----------------------------------------------------------

EjbDescriptor is a class in the Weld SPI, not in the EJB spec. The Javadoc says:

"* Gets the local business interfaces of the EJB"

This is, IMO, a clear requirement that the transitive closure of local business interfaces must be returned, if you feel this isn't clear, I can update the Javadoc to make it more explicit.

I believe the EJB spec requires that all interfaces in the transitive closure of the bean class type hierarchy is considered when locating business annotated @Local or @Remote, not just the immediate interfaces of the session bean (but I would like this clarified, I'll check with our EJB team...). If it doesn't, this is a bug in the TCK :-/



      was (Author: petemuir):
    EjbDescriptor is a class in the Weld SPI, not in the EJB spec. The Javadoc says:

"* Gets the local business interfaces of the EJB"

This is, IMO, a clear requirement that the transitive closure of local business interfaces must be returned, if you feel this isn't clear, I can update the Javadoc to make it more explicit.

I believe the EJB spec requires that the entire interface hierarchy of the bean class is considered when locating business annotated @Local or @Remote, not just the immediate interfaces of the session bean (but I would like this clarified, I'll check with our EJB team...). If it doesn't, this is a bug in the TCK :-/


  
> ProducerMethod.checkProducerMethod only checked method declarations in direct implemented interface and not super interfaces
> ----------------------------------------------------------------------------------------------------------------------------
>
>                 Key: WELD-301
>                 URL: https://jira.jboss.org/jira/browse/WELD-301
>             Project: Weld
>          Issue Type: Bug
>    Affects Versions: 1.0.0.GA
>         Environment: X86/Ubuntu
>            Reporter: Hong Zhang
>            Assignee: Pete Muir
>            Priority: Critical
>             Fix For: 1.0.1.CR1
>
>
> 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.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the weld-issues mailing list