[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [aspectj-users] java.lang.StackOverflowError -- Pointcut written incorrectly?
|
Thank you Bo! That works great. I appreciate the quick response.
-Michael
--- Bo Yi <boyi@xxxxxxxxxx> wrote:
>
>
>
>
> Should use !cflow(execution(String *.toString())) instead.
>
> ----------------------------------------------------------
> Dr. Bo Yi
> WAS L3 Support
> IBM Toronto Lab
> A2-713/Q2Z/8200/MKM
> 8200 Warden Ave. Markham ONT. L6G 1C7
> Phone: 905-413-4819
> Tie Line: 969-4819
> E-Mail: boyi@xxxxxxxxxx
>
>
>
>
> Michael McConnell
> <mcconnellem@yaho
> o.com> To
> Sent by: aspectj-users@xxxxxxxxxxx
> aspectj-users-adm cc
> in@xxxxxxxxxxx
> Subject
> [aspectj-users]
> 06/23/2004 10:16 java.lang.StackOverflowError --
> AM Pointcut written incorrectly?
>
>
> Please respond to
> aspectj-users
>
>
>
>
>
>
> Hello --
>
> I am getting a java.lang.StackOverflowError when attempting to trace using
> the following
> aspect:
>
> note that on line 15 (the before() rule) I have the following:
> !execution(String *.toString())
> -- which is designed to prevent this type of problem from occurring. It
> didn't help.
> I added the rule:
> && !execution(StringBuffer *.append(..))
> hoping that would help things too. It didn't.
>
> I am going to assume the worse, which is that I have miscoded this, and
> this is simply a
> case of 'smoke in the cockpit'. So any and all help is greatly appreciated.
>
> Thanks in advance.
> -Michael
>
> 2004-06-23 09:10 Page 1
>
>
> 1 // Listing 2.9 LogAndTraceAspect.java
> 2
> 3 import org.apache.log4j.*;
> 4 import org.aspectj.lang.*;
> 5 public aspect LogAndTraceAspect {
> 6 private Logger logger = Logger.getLogger("trace");
> 7
> 8 LogAndTraceAspect() {
> 9 logger.setLevel(Level.ALL);
> 10 }
> 11
> 12 pointcut traceMethods() :
> 13 (execution(* *.*(..)) || execution(*.new(..)))&&
> !within(LogAndTraceAspect ||
> java..* || javax..*);
> 14
> 15 before() : traceMethods() && !execution(String
> *.toString())&&
> !execution(StringBuffer StringBuffer.append(..)){
> 16 Signature sig =
> thisJoinPointStaticPart.getSignature();
> 17 logger.log(Level.INFO, "Entering ["
> 18 +
> sig.getDeclaringType().getName() + "."
> 19 +
> sig.getName() +"]"
> 20 +
> createParameterMsg(thisJoinPoint)
> 21 );
> 22 }
> 23
> 24 after() : traceMethods() {
> 25 logger.log(Level.INFO, "Exiting ["+ thisJoinPoint
> + "]");
> 26 }
> 27
> 28 pointcut logMethodExceptions() :
> 29 call(* *.*(..)) && !within(LogAndTraceAspect);
> 30
> 31 after() throwing (Throwable t) : logMethodExceptions() {
> 32 if (logger.isEnabledFor(Level.ERROR)){
> 33 Signature sig =
> thisJoinPointStaticPart.getSignature();
> 34 logger.log(Level.ERROR, "Exception
> encountered ["
> 35 +
> sig.getDeclaringType().getName() + "."
> 36 +
> sig.getName() +"]", t);
> 37 }
> 38 }
> 39
> 40 private String createParameterMsg(JoinPoint jp){
> 41 StringBuffer paramBuffer = new
> StringBuffer("\n\t[This: ");
> 42 Object[] arguments = jp.getArgs();
> 43 paramBuffer.append(jp.getThis());
> 44 paramBuffer.append("]\n\t[Args: (");
> 45 for (int length = arguments.length, i=0;i <
> length; ++i){
> 46 Object argument = arguments[i];
> 47 paramBuffer.append(argument);
> 48 if (i != length-1) {
> 49 paramBuffer.append(',');
> 50 }
> 51 }
> 52 paramBuffer.append(")]");
> 53 return paramBuffer.toString();
> 54 }
> 55 }
> 56
>
>
>
>
>
>
> =====
>
>
>
>
> __________________________________
> Do you Yahoo!?
> Yahoo! Mail Address AutoComplete - You start. We finish.
> http://promotions.yahoo.com/new_mail
> _______________________________________________
> 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
>
=====
__________________________________
Do you Yahoo!?
Yahoo! Mail - 50x more storage than other providers!
http://promotions.yahoo.com/new_mail