Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [aspectj-users] Inter-type Declartions and RMI

Note that there is a bug in AspectJ 1.1.1 that causes inter-type declarations to have synthetic attributes. This causes plain old Java calls into ITDs to fail. I suspect this bug is probably causing rmic to choke. See bug #45676 (https://bugs.eclipse.org/bugs/show_bug.cgi?id=45676).

Note that this bug has been fixed in cvs HEAD, so you could try to check out the latest version of AspectJ and create your own version. You could also try using AspectJ 1.1.0, which didn't have the bug, to see if rmic works with that.

Ron

Ron Bodkin
Chief Technology Officer
New Aspects of Software
m: (415) 509-2895

> ------------Original Message------------
> From: Wes Isberg <wes@xxxxxxxxxxxxxx>
> To: aspectj-users@xxxxxxxxxxx
> Date: Wed, Mar-3-2004 5:05 PM
> Subject: Re: [aspectj-users] Inter-type Declartions and RMI
> 
> There's no bug posted for rmic not reading .class files.  If it
> can't, post a bug with a reproducible test case.  If it can,
> try that: ajc; rmic; java
> 
> Thanks -
> Wes
> 
> Johanne Leduc wrote:
> 
> > Hello,
> > 
> > I have not been able to make successful RMI calls to methods that have 
> > been added to a server using AspectJ inter-type declarations. When my 
> > client makes the call to the new method that has been added to both the 
> > remote interface and the implementation of the interface, the server 
> > never receives the request (the aspect code, i.e., a println, is not 
> > executed). No exceptions are raised on either side. Has anyone 
> > encountered this before? Here’s a bit of background on my debugging so far:
> > 
> > -As someone has already posted, rmic doesn’t seem to like already weaved 
> > code, so I:
> >    -compile my server interface and server implementation with javac
> >    -run rmic to generate my stub and skeleton
> >    -put the server interface class file, server implementation class 
> > file, stub and skeleton in a jar file
> >    -run ajc with the “injars” option with this jar file and my aspect code
> >    (Note that I’ve successfully tried this procedure with an aspect that 
> > intercepts executions to server methods.)
> > 
> > -I have verified that both the server and the client are aware of the 
> > new method. I did this by calling the “getDeclaredMethods()” in the 
> > java.lang.reflect api on the remote instance the client gets. The new 
> > method is present in the stub on the client side and present in the 
> > server implementation instance on the server side. I even tried, without 
> > any success, to call it using the reflection api on the remote instance 
> > (method invoke).
> > 
> > - I have tried different aspects: (1) add the method definition to the 
> > remote interface and add the implementation of the method to the server 
> > class in the same aspect; (2) add only a new implementation to the 
> > remote interface (i.e. added a concrete method to the interface). Both 
> > have the same result: the call is successfully made by the client but is 
> > never received by the server.
> > 
> > Thanks,
> > Johanne Leduc
> > 
> > _________________________________________________________________
> > Protect your PC - get McAfee.com VirusScan Online  
> > http://clinic.mcafee.com/clinic/ibuy/campaign.asp?cid=3963
> > 
> > _______________________________________________
> > aspectj-users mailing list
> > aspectj-users@xxxxxxxxxxx
> > http://dev.eclipse.org/mailman/listinfo/aspectj-users
> > 
> 
> _______________________________________________
> aspectj-users mailing list
> aspectj-users@xxxxxxxxxxx
> http://dev.eclipse.org/mailman/listinfo/aspectj-users
> 
> 


Back to the top