Skip to main content

[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


Back to the top