Hi Eric, Thanks for your hints.
>From the stacktrace, I got the "com.at.aspect.LoggingAspect.log(Unknown Source)". That's related to the method of LoggingAspect class "public Object log(ProceedingJoinPoint call)". As you mentioned, the proceedingJoinPoint may has no value so it shows java.lang.ArrayIndexOutOfBoundsException Error. My question is that does aspectJ provide the argument to the ProceedingJoinPoint according to the spring configuration file? If yes, what setting that I have set incorrectly in the spring configuration file? Thanks!!! Regards, Terry On 3/1/08, [EMAIL PROTECTED] < [EMAIL PROTECTED]> wrote: > > Send aspectj-users mailing list submissions to > [email protected] > > To subscribe or unsubscribe via the World Wide Web, visit > https://dev.eclipse.org/mailman/listinfo/aspectj-users > or, via email, send a message with subject or body 'help' to > [EMAIL PROTECTED] > > You can reach the person managing the list at > [EMAIL PROTECTED] > > When replying, please edit your Subject line so it is more specific > than "Re: Contents of aspectj-users digest..." > > > Today's Topics: > > 1. aspect on a java API class ([EMAIL PROTECTED]) > 2. java.lang.ArrayIndexOutOfBoundsException Error (Lau Man Kwong) > 3. Re: java.lang.ArrayIndexOutOfBoundsException Error (Eric Bodden) > > > ---------------------------------------------------------------------- > > Message: 1 > Date: Fri, 29 Feb 2008 17:59:18 +0100 > From: [EMAIL PROTECTED] > Subject: [aspectj-users] aspect on a java API class > To: [email protected] > Message-ID: > <[EMAIL PROTECTED]> > Content-Type: text/plain; charset="us-ascii" > > Hi all, > > I am (still) trying to put a joinpoint on a java API class : > java.math.BigDecimal > I try to do it with load time weaving LTW (with a JavaAgent) > > My aspect is like this : > @Aspect > public class AppAspect { > @After("execution(* java.math.BigDecimal.valueOf(..))") > public void afterBigDecimal(JoinPoint jp) { > System.out.println("grouik BigDecimal"); > } > } > > And, because I know it is normally not authorized to do it, > I bypass the loading of the BigDecimal of the rt.jar, by bootloading an > extracted java.math.BigDecimal. > I do it by adding in the JVM parameters > -Xbootclasspath/p:"D:\...\target\test-classes\temp" > where ...\temp\ contains java\math\BigDecimal.class > > But when I execute this, the advise is not executed... > > Is the bypass a good solution ? If yes, why does it not working ? If no, > is there another way ? > > Thanks in advance. > > Laurent Delaforge > > > > ___________________________________________________________________________ > > L'integrite de ce message n'etant pas assuree sur Internet, les societes > du groupe Oddo ne peuvent ?tre tenues responsables de son contenu. Ce > message et les eventuels fichiers attaches contiennent des informations > confidentielles. Au cas o? il ne vous serait pas destine, nous vous > remercions de bien vouloir le supprimer et en aviser l'expediteur. > > This message and the files that may be attached to it contain confidential > information. The Oddo group may not be held responsible for their contents, > whose accuracy and completeness cannot be guaranteed over the internet. If > the message is not addressed to you, kindly delete it and notify the sender. > > > ___________________________________________________________________________ > -------------- next part -------------- > An HTML attachment was scrubbed... > URL: > https://dev.eclipse.org/mailman/private/aspectj-users/attachments/20080229/1bdf3ab4/attachment.html > > ------------------------------ > > Message: 2 > Date: Sat, 1 Mar 2008 01:40:38 +0800 > From: "Lau Man Kwong" <[EMAIL PROTECTED]> > Subject: [aspectj-users] java.lang.ArrayIndexOutOfBoundsException > Error > To: aspectj <[email protected]> > Message-ID: > <[EMAIL PROTECTED]> > Content-Type: text/plain; charset="iso-8859-1" > > Hi, > > I'm new to aspectj. When I do some practice on aspectj, an error " > java.lang.ArrayIndexOutOfBoundsException: 0 at > com.at.aspect.LoggingAspect.log(Unknown Source)" was encountered. I have > searched on internet but get no answer. Can you give me some hints for > this > error? > > I am using AspectJ 1.5.4, Spring 2.0 and JDK 5.0 on this project. > > I have attached some codes and stacktrace. Thanks!!! > > Regards, > Terry > > *LoggingAspect.java* > > package com.at.aspect; > > import org.aspectj.lang.ProceedingJoinPoint; > > public class LoggingAspect { > public Object log(ProceedingJoinPoint call) throws Throwable > { > System.out.println("from logging aspect: entering method [" + > call.toShortString() > +"] with param:"+call.getArgs()[0] ); > > Object point = call.proceed(); > > System.out.println("from logging aspect: exiting method [" + > call.toShortString() > + "with return as:" +point); > > return point; > } > > } > *Spring Configuration File* > > <bean id="myLoggingAspect" class="com.at.aspect.LoggingAspect"/> > <bean id="printReportBean" class="com.at.services.PrintReportManagerImpl"> > <property name="hibernateDAO" ref="HibernateDAO"/> > </bean> > <aop:config> > <aop:aspect ref="myLoggingAspect"> > <aop:pointcut id="myCutLogging" > expression="execution(* > com.at.services.PrintReportManagerImpl*.*(..))"/> > <aop:around pointcut-ref="myCutLogging" method="log"/> > </aop:aspect> > </aop:config> > > *Error* > > 2008-03-01 01:25:03,984 [org.apache.struts.action.RequestProcessor]-[WARN] > Unhandled Exception thrown: class java.lang.ArrayIndexOutOfBoundsException > 2008-03-01 01:25:03,984 > [org.apache.catalina.core.ContainerBase > .[Catalina].[localhost].[/AssetApp].[action]]-[ERROR] > Servlet.service() for servlet action threw exception > java.lang.ArrayIndexOutOfBoundsException: 0 > at com.at.aspect.LoggingAspect.log(Unknown Source) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke( > NativeMethodAccessorImpl.java:39) > at sun.reflect.DelegatingMethodAccessorImpl.invoke( > DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:585) > at > > org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs > (AbstractAspectJAdvice.java:597) > at > org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod > (AbstractAspectJAdvice.java:583) > at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke( > AspectJAroundAdvice.java:60) > at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed( > ReflectiveMethodInvocation.java:171) > at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke( > ExposeInvocationInterceptor.java:89) > at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed( > ReflectiveMethodInvocation.java:171) > at org.springframework.aop.framework.JdkDynamicAopProxy.invoke( > JdkDynamicAopProxy.java:204) > at $Proxy1.getConn(Unknown Source) > at com.at.web.PrintReportAction.printAssetList(Unknown Source) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke( > NativeMethodAccessorImpl.java:39) > at sun.reflect.DelegatingMethodAccessorImpl.invoke( > DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:585) > at org.apache.struts.actions.DispatchAction.dispatchMethod( > DispatchAction.java:270) > at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java > :187) > at org.apache.struts.action.RequestProcessor.processActionPerform( > RequestProcessor.java:431) > at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java > :236) > at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196) > at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:709) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) > at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( > ApplicationFilterChain.java:252) > at org.apache.catalina.core.ApplicationFilterChain.doFilter( > ApplicationFilterChain.java:173) > at org.apache.catalina.core.StandardWrapperValve.invoke( > StandardWrapperValve.java:213) > at org.apache.catalina.core.StandardContextValve.invoke( > StandardContextValve.java:178) > at org.apache.catalina.authenticator.AuthenticatorBase.invoke( > AuthenticatorBase.java:432) > at org.apache.catalina.core.StandardHostValve.invoke( > StandardHostValve.java > :126) > at org.apache.catalina.valves.ErrorReportValve.invoke( > ErrorReportValve.java > :105) > at org.apache.catalina.core.StandardEngineValve.invoke( > StandardEngineValve.java:107) > at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java > :148) > at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java > :869) > at > > org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection > (Http11BaseProtocol.java:664) > at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket( > PoolTcpEndpoint.java:527) > at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt( > LeaderFollowerWorkerThread.java:80) > at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run( > ThreadPool.java:684) > at java.lang.Thread.run(Thread.java:595) > -------------- next part -------------- > An HTML attachment was scrubbed... > URL: > https://dev.eclipse.org/mailman/private/aspectj-users/attachments/20080229/564e61aa/attachment.html > > ------------------------------ > > Message: 3 > Date: Fri, 29 Feb 2008 13:14:45 -0500 > From: "Eric Bodden" <[EMAIL PROTECTED]> > Subject: Re: [aspectj-users] java.lang.ArrayIndexOutOfBoundsException > Error > To: [email protected] > Message-ID: > <[EMAIL PROTECTED]> > Content-Type: text/plain; charset=ISO-8859-1 > > Maybe there are calls that have no arguments? > > Eric > > On 29/02/2008, Lau Man Kwong <[EMAIL PROTECTED]> wrote: > > Hi, > > > > I'm new to aspectj. When I do some practice on aspectj, an error > > "java.lang.ArrayIndexOutOfBoundsException: 0 at > > com.at.aspect.LoggingAspect.log(Unknown Source)" was encountered. I have > > searched on internet but get no answer. Can you give me some hints for > this > > error? > > > > I am using AspectJ 1.5.4, Spring 2.0 and JDK 5.0 on this project. > > > > I have attached some codes and stacktrace. Thanks!!! > > > > Regards, > > Terry > > > > LoggingAspect.java > > > > > > package com.at.aspect; > > > > import org.aspectj.lang.ProceedingJoinPoint; > > > > public class LoggingAspect { > > public Object log(ProceedingJoinPoint call) throws Throwable > > { > > System.out.println("from logging aspect: entering method [" + > > call.toShortString() > > +"] with param:"+call.getArgs()[0] ); > > > > Object point = call.proceed(); > > > > System.out.println("from logging aspect: exiting method [" + > > call.toShortString() > > + "with return as:" +point); > > > > return point; > > } > > > > } > > > > Spring Configuration File > > > > <bean id="myLoggingAspect" class="com.at.aspect.LoggingAspect"/> > > <bean id="printReportBean" > > class="com.at.services.PrintReportManagerImpl"> > > <property name="hibernateDAO" ref="HibernateDAO"/> > > </bean> > > <aop:config> > > <aop:aspect ref="myLoggingAspect"> > > <aop:pointcut id="myCutLogging" > > expression="execution(* > > com.at.services.PrintReportManagerImpl*.*(..))"/> > > <aop:around pointcut-ref="myCutLogging" method="log"/> > > </aop:aspect> > > </aop:config> > > > > Error > > > > 2008-03-01 01:25:03,984 > > [org.apache.struts.action.RequestProcessor]-[WARN] > > Unhandled Exception thrown: class > > java.lang.ArrayIndexOutOfBoundsException > > 2008-03-01 01:25:03,984 > > [org.apache.catalina.core.ContainerBase > .[Catalina].[localhost].[/AssetApp].[action]]-[ERROR] > > Servlet.service() for servlet action threw exception > > java.lang.ArrayIndexOutOfBoundsException: 0 > > at com.at.aspect.LoggingAspect.log(Unknown Source) > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native > > Method) > > at > > sun.reflect.NativeMethodAccessorImpl.invoke( > NativeMethodAccessorImpl.java:39) > > at > > sun.reflect.DelegatingMethodAccessorImpl.invoke( > DelegatingMethodAccessorImpl.java:25) > > at java.lang.reflect.Method.invoke(Method.java:585) > > at > > > org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs > (AbstractAspectJAdvice.java:597) > > at > > org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod > (AbstractAspectJAdvice.java:583) > > at > > org.springframework.aop.aspectj.AspectJAroundAdvice.invoke( > AspectJAroundAdvice.java:60) > > at > > org.springframework.aop.framework.ReflectiveMethodInvocation.proceed( > ReflectiveMethodInvocation.java:171) > > at > > org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke( > ExposeInvocationInterceptor.java:89) > > at > > org.springframework.aop.framework.ReflectiveMethodInvocation.proceed( > ReflectiveMethodInvocation.java:171) > > at > > org.springframework.aop.framework.JdkDynamicAopProxy.invoke( > JdkDynamicAopProxy.java:204) > > at $Proxy1.getConn(Unknown Source) > > at com.at.web.PrintReportAction.printAssetList(Unknown > > Source) > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native > > Method) > > at > > sun.reflect.NativeMethodAccessorImpl.invoke( > NativeMethodAccessorImpl.java:39) > > at > > sun.reflect.DelegatingMethodAccessorImpl.invoke( > DelegatingMethodAccessorImpl.java:25) > > at java.lang.reflect.Method.invoke(Method.java:585) > > at > > org.apache.struts.actions.DispatchAction.dispatchMethod( > DispatchAction.java:270) > > at > > org.apache.struts.actions.DispatchAction.execute(DispatchAction.java > :187) > > at > > org.apache.struts.action.RequestProcessor.processActionPerform( > RequestProcessor.java:431) > > at > > org.apache.struts.action.RequestProcessor.process(RequestProcessor.java > :236) > > at > > org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196) > > at > > org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432) > > at > > javax.servlet.http.HttpServlet.service(HttpServlet.java:709) > > at > > javax.servlet.http.HttpServlet.service(HttpServlet.java:802) > > at > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( > ApplicationFilterChain.java:252) > > at > > org.apache.catalina.core.ApplicationFilterChain.doFilter( > ApplicationFilterChain.java:173) > > at > > org.apache.catalina.core.StandardWrapperValve.invoke( > StandardWrapperValve.java:213) > > at > > org.apache.catalina.core.StandardContextValve.invoke( > StandardContextValve.java:178) > > at > > org.apache.catalina.authenticator.AuthenticatorBase.invoke( > AuthenticatorBase.java:432) > > at > > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java > :126) > > at > > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java > :105) > > at > > org.apache.catalina.core.StandardEngineValve.invoke( > StandardEngineValve.java:107) > > at > > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java > :148) > > at > > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java > :869) > > at > > > org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection > (Http11BaseProtocol.java:664) > > at > > org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket( > PoolTcpEndpoint.java:527) > > at > > org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt( > LeaderFollowerWorkerThread.java:80) > > at > > org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run( > ThreadPool.java:684) > > at java.lang.Thread.run(Thread.java:595) > > _______________________________________________ > > aspectj-users mailing list > > [email protected] > > https://dev.eclipse.org/mailman/listinfo/aspectj-users > > > > > > > -- > Eric Bodden > Sable Research Group > McGill University, Montréal, Canada > > > ------------------------------ > > _______________________________________________ > aspectj-users mailing list > [email protected] > https://dev.eclipse.org/mailman/listinfo/aspectj-users > > > End of aspectj-users Digest, Vol 36, Issue 40 > ********************************************* >
_______________________________________________ aspectj-users mailing list [email protected] https://dev.eclipse.org/mailman/listinfo/aspectj-users
