We received complaints because AOP stack traces are difficult to follow. This removes almost everything. The weird thing about this change is that the stack traces contain gaps. Anyone tracing through a stack trace should recognize that proceed() or invoke() means that AOP is in play.
The stack trace of a method that was subject to two interceptors used to look like this:
java.lang.Exception: kaboom!
at com.publicobject.Interceptable.explode(Interceptable.java:203)
at com.publicobject.Interceptable$$EnhancerByGuice$$5ffccef9.CGLIB$explode$2(<generated>)
at com.publicobject.Interceptable$$EnhancerByGuice$$5ffccef9$$FastClassByGuice$$20c8faff.invoke(<generated>)
at net.sf.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228)
at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:72)
at com.publicobject.InterceptorB.invoke(InterceptorB.java:57)
at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:72)
at com.publicobject.InterceptorA.invoke(InterceptorA.java:50)
at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:72)
at com.google.inject.internal.InterceptorStackCallback.intercept(InterceptorStackCallback.java:52)
at com.publicobject.MyTest$Interceptable$$EnhancerByGuice$$5ffccef9.explode(<generated>)
at com.publicobject.MyTest.testInterceptedMethodThrows(MyTest.java:181)
Now it looks like this:
java.lang.Exception: kaboom!
at com.publicobject.Interceptable.explode(Interceptable.java:203)
at com.publicobject.InterceptorB.invoke(InterceptorB.java:57)
at com.publicobject.InterceptorA.invoke(InterceptorA.java:50)
at com.publicobject.MyTest.testInterceptedMethodThrows(MyTest.java:181)
git-svn-id: https://google-guice.googlecode.com/svn/trunk@1481 d779f126-a31b-0410-b53b-1d3aecad763e