dromara / hutool

🍬A set of tools that keep Java sweet.
https://hutool.cn
Other
28.91k stars 7.48k forks source link

ReflectUtil.invoke(Object obj, Method method, Object... args) 方法发生异常时,可以将obj、method 、 args 在异常信息里,打印出来吗?或者增加个log #3666

Closed aifuqiang02 closed 1 month ago

aifuqiang02 commented 1 month ago

BeanUtil.copyProperties( 在使用这个方法的时候,报错提示空指针,但我无法根据报错信息,具体知道是哪儿发生了异常。

版本情况

JDK版本: openjdk_8_201 hutool版本: 5.8.21(请确保最新尝试是否还有问题)

问题描述(包括截图)

  1. 复现代码
BeanUtil.copyProperties(setupRegistrationOld, data, CopyOptions.create());
  1. 堆栈信息 cn.hutool.core.exceptions.InvocationTargetRuntimeException: InvocationTargetException: null at cn.hutool.core.util.ReflectUtil.invoke(ReflectUtil.java:1010) at cn.hutool.core.bean.PropDesc.getValue(PropDesc.java:155) at cn.hutool.core.bean.copier.BeanToBeanCopier.lambda$copy$0(BeanToBeanCopier.java:75) at java.util.LinkedHashMap.forEach(LinkedHashMap.java:684) at cn.hutool.core.bean.copier.BeanToBeanCopier.copy(BeanToBeanCopier.java:50) at cn.hutool.core.bean.copier.BeanCopier.copy(BeanCopier.java:92) at cn.hutool.core.bean.BeanUtil.copyProperties(BeanUtil.java:771) at could.com.hanwen.govapi.service.market.AbstractMarketSubjectService.buildSetupRegistrationData(AbstractMarketSubjectService.java:970) at could.com.hanwen.govapi.service.market.AbstractMarketSubjectService.setSetupRegistration(AbstractMarketSubjectService.java:257) at could.com.hanwen.govapi.factory.MarketSubjectFactory.getMarketSubject(MarketSubjectFactory.java:63) at could.com.hanwen.govapi.service.EnterpriseStakeholderServiceImpl.saveParentCompanyLegalPerson(EnterpriseStakeholderServiceImpl.java:44) at could.com.hanwen.govapi.service.EnterpriseStakeholderServiceImpl$$FastClassBySpringCGLIB$$1218d3e2.invoke() at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:651) at could.com.hanwen.govapi.service.EnterpriseStakeholderServiceImpl$$EnhancerBySpringCGLIB$$527b36ed.saveParentCompanyLegalPerson() at could.com.hanwen.govapi.controller.pc.PCEnterpriseSetupController.addSlJbxx(PCEnterpriseSetupController.java:313) at could.com.hanwen.govapi.controller.pc.PCEnterpriseSetupController$$FastClassBySpringCGLIB$$f07fbde3.invoke() at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:720) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157) at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:281) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:655) at could.com.hanwen.govapi.controller.pc.PCEnterpriseSetupController$$EnhancerBySpringCGLIB$$5e6fc9ce.addSlJbxx()

  2. 测试涉及到的文件(注意脱密)

比如报错的Excel文件,有问题的图片等。

looly commented 1 month ago

很奇怪的问题

image

按理说这里不应该出现空指针才对,麻烦补充个test复现下问题。比如提供setupRegistrationOld, data这两个对象,再打开此issue。