Could yo please review the patch I attached in this JIRA ?

On Thu, Jun 24, 2010 at 6:15 PM, David Blevins <[email protected]>wrote:

> Hi Shawn!
>
> Missed this patch in JIRA.  Feel free to post anytime you have a patch for
> review.
>
> On Jun 13, 2010, at 12:22 AM, Shawn Jiang (JIRA) wrote:
>
> >> callback method search is not considering the overriding rule.
> >> --------------------------------------------------------------
> >>
> >>                Key: OPENEJB-1299
> >>                URL: https://issues.apache.org/jira/browse/OPENEJB-1299
> >>            Project: OpenEJB
> >>         Issue Type: Bug
> >>         Components: container system
> >>   Affects Versions: 3.1.3
> >>        Environment: 3.1.3-snapshot ,  geronimo 2.2.1 jetty release
> >>           Reporter: Shawn Jiang
> >>        Attachments: OPENEJB-1299.diff
> >>
> >>
> >> Considering following scenario:
> >> Bean is a EJB,  BeanSuper is the Bean's super class.
> >> BeanSuper {
> >>    @PostConstruct
> >>    private void postConstructMethodInBeanSuper() throws RuntimeException
> {
> >>        System.out.println( " post construct method in bean super")
> >>    }
> >> }
> >> @Stateless(name="Bean")
> >> Bean extends BeanSuper {
> >>    protected void postConstructMethodInBeanSuper() throws
> RuntimeException {
> >>        System.out.println( " post construct method in bean")
> >>    }
> >> }
> >> When container invoke the @postconstruct callback method.   It should
> call BeanSuper#postConstructMethodInBeanSuper()  instead of
> Bean#postConstructMethodInBeanSuper() because
> BeanSuper#postConstructMethodInBeanSuper() is a private method that can't be
> overridden.
>
> Good catch!  I went a head and whipped up a little test case for this:
>
>
> http://svn.apache.org/repos/asf/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateful/CallbackOverridesTest.java
>
> All the existing override logic is done in the InterceptorBindingBuilder
> class.  We could probably improve that logic to be sensitive of the fact
> that the target method may be a private method, in which case we don't need
> to apply the override concept.
>
>
> -David
>
>


-- 
Shawn

Reply via email to