Weird... I did not notice that
org.springframework.ejb.support.AbstractSessionBean was package
private.  It makes a little sense that is is package private because
you only expect users to extend from one of its direct subclasses for
MDB or a SB.

Thanks for taking a look :-)

I've added definitions for ejbRemove() which call super.ejbRemove() to
get around this.  Do you know when the fix will make it into a CGLIB
release that would be usable by G?

--jason


On 2/14/06, Chris Nokleberg <[EMAIL PROTECTED]> wrote:
> > >On Tue, Feb 14, 2006 at 12:31:45PM -0800, Dain Sundstrom wrote:
> > >>I'm getting an IllegalAccessError when using fastclass to invoke a
> > >>method on an instance where the method is inherited from a parent
> > >>class.
>
> I've reproduced the bug. It is caused because the method is actually
> defined in a non-public class in another package: the public class
> org.springframework.ejb.support.AbstractStatelessSessionBean extends the
> non-public class org.springframework.ejb.support.AbstractSessionBean.
> IMHO this is kind of weird on Spring's part, but nonetheless it has
> exposed a bug in FastClass, which is calling invokevirtual on the
> ancestor class instead of the derived class.
>
> The workaround, as you have discovered, is to redefine the method in the
> derived class, even if it is just to call super.ejbRemove().
>
> Some other parts of CVS HEAD are in transition now (the
> MethodInterceptor startup optimizations) so even after I fix this bug
> you'll have to wait a little while. I'll let you know when there is a
> new version to test.
>
> Thanks,
> Chris
>
>

Reply via email to