jcabi / jcabi-aspects

Collection of AspectJ Java Aspects to facilitate aspect-oriented programming patterns: logging, caching, validating, etc.
https://aspects.jcabi.com
Other
527 stars 150 forks source link

NullPointerException during invoke @Loggable #219

Open lukashunter opened 8 years ago

lukashunter commented 8 years ago

It is my first comment in GitHub ever. I'd like use @Loggable because is awesome, but I have following problem. When I run my app in local env it is everything is good, but in production i have problem.

My env: Jetty 9 java version "1.8.0_45" Java(TM) SE Runtime Environment (build 1.8.0_45-b14) Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)

Thanks for help and sorry for Subject

Luke

20899317 [qtp2027961269-242] INFO  wms.service.adm.AdmService  - #saveStempel('Stempel{accountNumber='null', idstmpl=1, companyN..400..wal='t', pass='bezhasla', ilenumlok=10000}'): thrown java.lang.NullPointerException out of wms.service.adm.AdmService#saveStempel_aroundBody9$advice[32] in 584µs
java.lang.NullPointerException
    at wms.service.adm.AdmService.saveStempel_aroundBody9$advice(AdmService.java:32)
    at wms.service.adm.AdmService.saveStempel_aroundBody10(AdmService.java:1)
    at wms.service.adm.AdmService$AjcClosure11.run(AdmService.java:1)
    at org.springframework.transaction.aspectj.AbstractTransactionAspect.ajc$around$org_springframework_transaction_aspectj_AbstractTransactionAspect$1$2a73e96cproceed(AbstractTransactionAspect.aj:59)
    at org.springframework.transaction.aspectj.AbstractTransactionAspect$AbstractTransactionAspect$1.proceedWithInvocation(AbstractTransactionAspect.aj:65)
    at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:262)
    at org.springframework.transaction.aspectj.AbstractTransactionAspect.ajc$around$org_springframework_transaction_aspectj_AbstractTransactionAspect$1$2a73e96c(AbstractTransactionAspect.aj:63)
    at wms.service.adm.AdmService.saveStempel_aroundBody12(AdmService.java:80)
    at wms.service.adm.AdmService$AjcClosure13.run(AdmService.java:1)
    at org.aspectj.runtime.reflect.JoinPointImpl.proceed(JoinPointImpl.java:149)
    at com.jcabi.aspects.aj.MethodLogger.wrap(MethodLogger.java:212)
    at com.jcabi.aspects.aj.MethodLogger.ajc$inlineAccessMethod$com_jcabi_aspects_aj_MethodLogger$com_jcabi_aspects_aj_MethodLogger$wrap(MethodLogger.java:1)
    at com.jcabi.aspects.aj.MethodLogger.wrapMethod(MethodLogger.java:169)
    at wms.service.adm.AdmService.saveStempel(AdmService.java:80)
    at wms.service.adm.AdmService$$FastClassBySpringCGLIB$$ca6a9b99.invoke(<generated>)
    at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
    at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:708)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
    at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:98)
    at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:262)
    at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:95)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
    at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:644)
    at wms.service.adm.AdmService$$EnhancerBySpringCGLIB$$54f4f6fc.saveStempel(<generated>)
    at wms.controller.general.StempelController.save(StempelController.java:30)
...
20899319 [qtp2027961269-242] ERROR wms.controller.ExceptionHandlingController  -  e Excpetion = {}
java.lang.NullPointerException
    at wms.service.adm.AdmService.saveStempel_aroundBody9$advice(AdmService.java:32)
    at wms.service.adm.AdmService.saveStempel_aroundBody10(AdmService.java:1)
    at wms.service.adm.AdmService$AjcClosure11.run(AdmService.java:1)
    at org.springframework.transaction.aspectj.AbstractTransactionAspect.ajc$around$org_springframework_transaction_aspectj_AbstractTransactionAspect$1$2a73e96cproceed(AbstractTransactionAspect.aj:59)
    at org.springframework.transaction.aspectj.AbstractTransactionAspect$AbstractTransactionAspect$1.proceedWithInvocation(AbstractTransactionAspect.aj:65)
    at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:262)
    at org.springframework.transaction.aspectj.AbstractTransactionAspect.ajc$around$org_springframework_transaction_aspectj_AbstractTransactionAspect$1$2a73e96c(AbstractTransactionAspect.aj:63)
    at wms.service.adm.AdmService.saveStempel_aroundBody12(AdmService.java:80)
    at wms.service.adm.AdmService$AjcClosure13.run(AdmService.java:1)
    at org.aspectj.runtime.reflect.JoinPointImpl.proceed(JoinPointImpl.java:149)
    at com.jcabi.aspects.aj.MethodLogger.wrap(MethodLogger.java:212)
    at com.jcabi.aspects.aj.MethodLogger.ajc$inlineAccessMethod$com_jcabi_aspects_aj_MethodLogger$com_jcabi_aspects_aj_MethodLogger$wrap(MethodLogger.java:1)
    at com.jcabi.aspects.aj.MethodLogger.wrapMethod(MethodLogger.java:169)
    at wms.service.adm.AdmService.saveStempel(AdmService.java:80)
    at wms.service.adm.AdmService$$FastClassBySpringCGLIB$$ca6a9b99.invoke(<generated>)
    at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
    at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:708)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
    at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:98)
    at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:262)
    at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:95)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
    at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:644)
    at wms.service.adm.AdmService$$EnhancerBySpringCGLIB$$54f4f6fc.saveStempel(<generated>)
    at wms.controller.general.StempelController.save(StempelController.java:30)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    .....
dmarkov commented 8 years ago

@yegor256 please do something about this issue

maurcarvalho commented 8 years ago

@lukashunter please confirm that, is your AdmService component lifecycle managed by spring? Looks like the instance object doens't exist yet when the aspect try to intercept it.

lukashunter commented 8 years ago

@MauricioJr yes, AdmService is Spring Component (marked by @Service).

yegor256 commented 8 years ago

@lukashunter this problem is not related to our code (I guess). it's something you should resolve with Spring. maybe @MauricioJr can help you...