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<http://www.eclipse.org/aspectj/doc/released/adk15notebook/join-point-signatures.html#method-call-join-point-signatures>is not always the same as the one you see at the execution join point<http://www.eclipse.org/aspectj/doc/released/adk15notebook/join-point-signatures.html#method-execution-join-point-signatures> You'd also have to evaluate the performance impact of intercepting each call. Frank 2014-03-27 15:37 GMT+01:00 trhouse <[email protected]>: > 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" <[email protected]> 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 <[email protected]>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 >>> [email protected] >>> https://dev.eclipse.org/mailman/listinfo/aspectj-users >>> >>> >> >> _______________________________________________ >> aspectj-users mailing list >> [email protected] >> https://dev.eclipse.org/mailman/listinfo/aspectj-users >> >> > _______________________________________________ > aspectj-users mailing list > [email protected] > https://dev.eclipse.org/mailman/listinfo/aspectj-users > >
_______________________________________________ aspectj-users mailing list [email protected] https://dev.eclipse.org/mailman/listinfo/aspectj-users
