Am trying to integrate Aspects to old monolithic Spring MVC application configured via XML schema.
Spring AOP is configured via <context:component-scan .../> & <aop:aspectj-autoproxy proxy-target-class="true"/>
The delegate bean schema definition & the AOP config. has been placed in same schema context definition file.
The instance variable handing out NPE is declared in Parent abstract class of the delegate, its of modifier Protected accessor default
Aspect advice applied is @Before, @Before("execution(* c.x.at.movement.webservice.WsVerifyTxn.process(..) )")
, and simple log statement inside advice.
Without SpringAOP AspectJ, disabled, am able to execute the flow without any erroring scenario.
No place super.variable has been assigned to null.
Would be very much thankful if anyone could direct or suggest to get me out of this distress!
Below are three stack traces for review
1 >> Error stack trace
c.x.a.c.transaction.PersistableTxn.retrieveData(@664): Error executing Business Delegate Controller for uri '/snippet/verify':
java.lang.NullPointerException
at c.x.a.c.transaction.PersistableTxn.retrieveData(PersistableTxn.java:664)
at c.x.a.c.transaction.PersistableTxn.getTxnHistory(PersistableTxn.java:891)
at c.x.a.c.transaction.PersistableTxn.finalize(PersistableTxn.java:562)
at c.x.at.movement.BaseDelegate.finalize(BaseDelegate.java:257)
at c.x.at.movement.BaseDelegate$$FastClassByCGLIB$$cbb13d00_2.invoke(<generated>)
at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:191)
at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:688)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:621)
at c.x.at.movement.webservice.WsVerifyTxn$$EnhancerByCGLIB$$5ee08d0e.finalize(<generated>)
at c.x.a.c.businessdelegate.PersistableBusinessDelegate.postProcess(PersistableBusinessDelegate.java:118)
at c.x.a.c.businessdelegate.BusinessDelegateAdapter.execute(BusinessDelegateAdapter.java:297)
at c.x.a.c.businessdelegate.spring.BusinessDelegateController.handleRequestInternal(BusinessDelegateController.java:175)
at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:790)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:560)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:646)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at c.x.commons.session.servlet.SSMCFilter.doFilter(SSMCFilter.java:79)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at c.x.commons.security.auth.xAuthFilter$_filter_action.run(xAuthFilter.java:78)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAsPrivileged(Subject.java:536)
at c.x.commons.util.j2ee.J2EESubjectPropagaterNoOp.doAsPrivileged(J2EESubject.java:80)
at c.x.commons.security.auth.xAuthFilter.doFilter(xAuthFilter.java:154)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at c.x.commons.cs203.servlet.CS203CoreServletFilter.doFilter(CS203CoreServletFilter.java:86)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at c.x.a.c.model.accountinfo.filter.CacheFilter.doFilter(CacheFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:503)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:722)
2 >> Debug stack trace in flow step 1, the variable has been initialized
Daemon Thread [http-bio-9080-exec-2] (Suspended (breakpoint at line 196 in BusinessDelegate))
owns: SocketWrapper<E> (id=363)
WsVerifyTxn$$EnhancerByCGLIB$$eeedc57b(BusinessDelegate).preProcess(xContext, Object) line: 196
WsVerifyTxn$$EnhancerByCGLIB$$eeedc57b(PersistableBusinessDelegate).preProcess(xContext, Object) line: 34
BusinessDelegateAdapter.execute(RequestContext) line: 267
BusinessDelegateController.handleRequestInternal(HttpServletRequest, HttpServletResponse) line: 175
BusinessDelegateController(AbstractController).handleRequest(HttpServletRequest, HttpServletResponse) line: 153
SimpleControllerHandlerAdapter.handle(HttpServletRequest, HttpServletResponse, Object) line: 48
DispatcherServlet.doDispatch(HttpServletRequest, HttpServletResponse) line: 790
DispatcherServlet.doService(HttpServletRequest, HttpServletResponse) line: 719
DispatcherServlet(FrameworkServlet).processRequest(HttpServletRequest, HttpServletResponse) line: 644
DispatcherServlet(FrameworkServlet).doPost(HttpServletRequest, HttpServletResponse) line: 560
DispatcherServlet(HttpServlet).service(HttpServletRequest, HttpServletResponse) line: 646
DispatcherServlet(HttpServlet).service(ServletRequest, ServletResponse) line: 727
ApplicationFilterChain.internalDoFilter(ServletRequest, ServletResponse) line: 303
ApplicationFilterChain.doFilter(ServletRequest, ServletResponse) line: 208
WsFilter.doFilter(ServletRequest, ServletResponse, FilterChain) line: 52
ApplicationFilterChain.internalDoFilter(ServletRequest, ServletResponse) line: 241
ApplicationFilterChain.doFilter(ServletRequest, ServletResponse) line: 208
SSMCFilter.doFilter(ServletRequest, ServletResponse, FilterChain) line: 79
ApplicationFilterChain.internalDoFilter(ServletRequest, ServletResponse) line: 241
ApplicationFilterChain.doFilter(ServletRequest, ServletResponse) line: 208
xAuthFilter$_filter_action.run() line: 78
AccessController.doPrivileged(PrivilegedExceptionAction<T>, AccessControlContext) line: not available [native method]
Subject.doAsPrivileged(Subject, PrivilegedExceptionAction<T>, AccessControlContext) line: 536
J2EESubjectPropagaterNoOp.doAsPrivileged(Subject, PrivilegedExceptionAction, AccessControlContext) line: 80
xAuthFilter.doFilter(ServletRequest, ServletResponse, FilterChain) line: 154
ApplicationFilterChain.internalDoFilter(ServletRequest, ServletResponse) line: 241
ApplicationFilterChain.doFilter(ServletRequest, ServletResponse) line: 208
CS203CoreServletFilter.doFilter(ServletRequest, ServletResponse, FilterChain) line: 86
DelegatingFilterProxy.invokeDelegate(Filter, ServletRequest, ServletResponse, FilterChain) line: 237
DelegatingFilterProxy.doFilter(ServletRequest, ServletResponse, FilterChain) line: 167
ApplicationFilterChain.internalDoFilter(ServletRequest, ServletResponse) line: 241
ApplicationFilterChain.doFilter(ServletRequest, ServletResponse) line: 208
CacheFilter.doFilter(ServletRequest, ServletResponse, FilterChain) line: 53
ApplicationFilterChain.internalDoFilter(ServletRequest, ServletResponse) line: 241
ApplicationFilterChain.doFilter(ServletRequest, ServletResponse) line: 208
StandardWrapperValve.invoke(Request, Response) line: 220
StandardContextValve.invoke(Request, Response) line: 122
NonLoginAuthenticator(AuthenticatorBase).invoke(Request, Response) line: 503
StandardHostValve.invoke(Request, Response) line: 170
ErrorReportValve.invoke(Request, Response) line: 103
AccessLogValve.invoke(Request, Response) line: 950
StandardEngineValve.invoke(Request, Response) line: 116
CoyoteAdapter.service(Request, Response) line: 421
Http11Processor(AbstractHttp11Processor<S>).process(SocketWrapper<S>) line: 1070
Http11Protocol$Http11ConnectionHandler(AbstractProtocol$AbstractConnectionHandler<S,P>).process(SocketWrapper<S>, SocketStatus) line: 611
JIoEndpoint$SocketProcessor.run() line: 314
ThreadPoolExecutor(ThreadPoolExecutor).runWorker(ThreadPoolExecutor$Worker) line: 1110
ThreadPoolExecutor$Worker.run() line: 603
TaskThread$WrappingRunnable.run() line: 61
TaskThread(Thread).run() line: 722
3 >> Debug stack trace in flow, step 2, before the statement exectuion where NPE would be thrown
Daemon Thread [http-bio-9080-exec-2] (Suspended (breakpoint at line 664 in PersistableTxn))
owns: SocketWrapper<E> (id=363)
WsVerifyTxn(PersistableTxn).retrieveData(String) line: 664
WsVerifyTxn(PersistableTxn).getTxnHistory() line: 891
WsVerifyTxn(PersistableTxn).finalize(Persistable, xContext, xModelOutput) line: 562
WsVerifyTxn(BaseDelegate).finalize(Persistable, xContext, xModelOutput) line: 257
BaseDelegate$$FastClassByCGLIB$$cbb13d00_2.invoke(int, Object, Object[]) line: not available
MethodProxy.invoke(Object, Object[]) line: 191
Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint() line: 688
Cglib2AopProxy$CglibMethodInvocation(ReflectiveMethodInvocation).proceed() line: 150
ExposeInvocationInterceptor.invoke(MethodInvocation) line: 89
Cglib2AopProxy$CglibMethodInvocation(ReflectiveMethodInvocation).proceed() line: 172
Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Object, Method, Object[], MethodProxy) line: 621
WsVerifyTxn$$EnhancerByCGLIB$$eeedc57b.finalize(Persistable, xContext, xModelOutput) line: not available
WsVerifyTxn$$EnhancerByCGLIB$$eeedc57b(PersistableBusinessDelegate).postProcess(xContext, xModelOutput) line: 118
BusinessDelegateAdapter.execute(RequestContext) line: 297
BusinessDelegateController.handleRequestInternal(HttpServletRequest, HttpServletResponse) line: 175
BusinessDelegateController(AbstractController).handleRequest(HttpServletRequest, HttpServletResponse) line: 153
SimpleControllerHandlerAdapter.handle(HttpServletRequest, HttpServletResponse, Object) line: 48
DispatcherServlet.doDispatch(HttpServletRequest, HttpServletResponse) line: 790
DispatcherServlet.doService(HttpServletRequest, HttpServletResponse) line: 719
DispatcherServlet(FrameworkServlet).processRequest(HttpServletRequest, HttpServletResponse) line: 644
DispatcherServlet(FrameworkServlet).doPost(HttpServletRequest, HttpServletResponse) line: 560
DispatcherServlet(HttpServlet).service(HttpServletRequest, HttpServletResponse) line: 646
DispatcherServlet(HttpServlet).service(ServletRequest, ServletResponse) line: 727
ApplicationFilterChain.internalDoFilter(ServletRequest, ServletResponse) line: 303
ApplicationFilterChain.doFilter(ServletRequest, ServletResponse) line: 208
WsFilter.doFilter(ServletRequest, ServletResponse, FilterChain) line: 52
ApplicationFilterChain.internalDoFilter(ServletRequest, ServletResponse) line: 241
ApplicationFilterChain.doFilter(ServletRequest, ServletResponse) line: 208
SSMCFilter.doFilter(ServletRequest, ServletResponse, FilterChain) line: 79
ApplicationFilterChain.internalDoFilter(ServletRequest, ServletResponse) line: 241
ApplicationFilterChain.doFilter(ServletRequest, ServletResponse) line: 208
xAuthFilter$_filter_action.run() line: 78
AccessController.doPrivileged(PrivilegedExceptionAction<T>, AccessControlContext) line: not available [native method]
Subject.doAsPrivileged(Subject, PrivilegedExceptionAction<T>, AccessControlContext) line: 536
J2EESubjectPropagaterNoOp.doAsPrivileged(Subject, PrivilegedExceptionAction, AccessControlContext) line: 80
xAuthFilter.doFilter(ServletRequest, ServletResponse, FilterChain) line: 154
ApplicationFilterChain.internalDoFilter(ServletRequest, ServletResponse) line: 241
ApplicationFilterChain.doFilter(ServletRequest, ServletResponse) line: 208
CS203CoreServletFilter.doFilter(ServletRequest, ServletResponse, FilterChain) line: 86
DelegatingFilterProxy.invokeDelegate(Filter, ServletRequest, ServletResponse, FilterChain) line: 237
DelegatingFilterProxy.doFilter(ServletRequest, ServletResponse, FilterChain) line: 167
ApplicationFilterChain.internalDoFilter(ServletRequest, ServletResponse) line: 241
ApplicationFilterChain.doFilter(ServletRequest, ServletResponse) line: 208
CacheFilter.doFilter(ServletRequest, ServletResponse, FilterChain) line: 53
ApplicationFilterChain.internalDoFilter(ServletRequest, ServletResponse) line: 241
ApplicationFilterChain.doFilter(ServletRequest, ServletResponse) line: 208
StandardWrapperValve.invoke(Request, Response) line: 220
StandardContextValve.invoke(Request, Response) line: 122
NonLoginAuthenticator(AuthenticatorBase).invoke(Request, Response) line: 503
StandardHostValve.invoke(Request, Response) line: 170
ErrorReportValve.invoke(Request, Response) line: 103
AccessLogValve.invoke(Request, Response) line: 950
StandardEngineValve.invoke(Request, Response) line: 116
CoyoteAdapter.service(Request, Response) line: 421
Http11Processor(AbstractHttp11Processor<S>).process(SocketWrapper<S>) line: 1070
Http11Protocol$Http11ConnectionHandler(AbstractProtocol$AbstractConnectionHandler<S,P>).process(SocketWrapper<S>, SocketStatus) line: 611
JIoEndpoint$SocketProcessor.run() line: 314
ThreadPoolExecutor(ThreadPoolExecutor).runWorker(ThreadPoolExecutor$Worker) line: 1110
ThreadPoolExecutor$Worker.run() line: 603
TaskThread$WrappingRunnable.run() line: 61
TaskThread(Thread).run() line: 722