Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [aspectj-users] identifying class not included in pointcut

It's difficult to know that you're going through an unmodified method without modifying the method.

I guess you could maintain a (thread-local) stack of the methods called (by using a call(* *(..)) pointcut) and verifying in the weaved methods (using a execution(* *(..)) pointcut) that it matches the expected call. However, there would be several shortcomings:
  • you wouldn't detect calls that never result in a weaved method call, but that doesn't seem to be your concern anyway
  • you'd have to deal with polymorphism since the signature you see at the call join point is not always the same as the one you see at the execution join point
You'd also have to evaluate the performance impact of intercepting each call.

Frank


2014-03-27 15:37 GMT+01:00 trhouse <trhouse@xxxxxxxxx>:

If I could know when the program had entered a non instrumented method,that would suffice since I could just throw a global flag of some description, though thinking about it now, that's a lot of flag checking I'm setting myself up for... 

It seems like a very basic fact about any program utilizing aspectj -now we have left instrumented code, now we are reentrant. AspectJ does not support this scenario? Can anyone confirm that statement?

Thank you!

On Mar 26, 2014 12:29 AM, "Andy Clement" <andrew.clement@xxxxxxxxx> wrote:
cflow() and cflowbelow() are the usual tools for detecting something calling some other thing - but that seems like targeting that you don't want to do. In the advice you could create a stack trace (using Thread) and inspect it to see who called you but the performance wouldn't be great.

Andy


On 25 March 2014 11:55, JAVA DEVELOPER <JAVA_DEVELOPER_922@xxxxxxx> wrote:
Suppose I have program in which some method calls are targeted by a pointcut, while others are not. Of course a targeted method could be invoked by a non-targeted method. What I want to know is when this has happened. I (think) I know that I cant get the invoking, non-targeted method's FQN without targeting it,  (but I would take it if I could have it)..  what I am interested in is knowing the  fact that this has occurred at all. Is this possible?

Thank you!

-T 

_______________________________________________
aspectj-users mailing list
aspectj-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/aspectj-users



_______________________________________________
aspectj-users mailing list
aspectj-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/aspectj-users


_______________________________________________
aspectj-users mailing list
aspectj-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/aspectj-users



Back to the top