逆天日志打印导致的springboot上传文件失败

最近在写项目的时候,实现一个文件导入功能时,在上传文件时,程序报错java.io.UncheckedIOException: Cannot delete C:\Users\18578\AppData
出现这个错的时候第一印象是权限不够,临时文件删除不了,于是根据报错日志查看源码,报错源码位置如下
在这里插入图片描述
在这里插入图片描述

springboot上传文件时会生成一个临时文件,而这个临时文件最终会执行清除操作清除掉。但是再看源码的时候发现,执行删除操作的时候,程序执行失败,异常是被抛掉了,并不会影响程序继续执行,但是我的项目里面的上传功能是直接被阻断了,程序无法进行,看到这里,我就觉得很奇怪了,到底是哪里主动抛出了异常,阻断了程序执行,一时没有头绪。其实这个抛出的错误在没有关闭文件流的时候也会出现,但很明显,我不是由于这个原因。于是我打断点,看下执行的堆栈信息,一路沿着源码往上执行,最终找到了程序异常的地方
在这里插入图片描述由项目里面有一个环绕日志打印的切面引起(这个日志打印没用,应该是之前同事复制的以前哪个项目的),这个切面用于接口日志打印,而就是在日志打印的时候,引起的上传功能报错,罪魁祸首如下
在这里插入图片描述使用了json.tojsonstring(),所以执行的时候出错了。
结论:由于一个切面打印日志,错误的使用了json.tojsonstring去打印arg参数,导致的上传时,直接就程序异常了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值