问题背景:
最近在维护的项目中有一个接口是发送邮件的功能
最近有使用者反馈,发送的图片附件有损坏,图片都是展示一半,有的甚至直接无法显示
也包括 pdf、excel 等无法正常打开;
于是我去找寻到底什么问题
先去上传附件的系统中查看附件是否完整,看过后是完整的,
由此判断是邮件发送的问题
排查过程:
我先是去自己测试了一下,发现没什么问题
但是他们转发给我的确实是有问题的,
于是我就多发送了几个,发现确实有一个是有损坏的
等到晚上去测试的时候,发送的附件又没有出现损坏了
于是怀疑是网络的原因,
我就去通过并发软件进行请求,然后全都是损坏的了
接着我去查看发送邮件的代码是否有问题,百度了很多
有说最后没关闭资源的
有说没有设置读取时间的
都一一测试设置了,还是会有损坏的问题
解决问题:
然后我查着查着,发现一个 单词 “synchronized”
然后我突然就明白了 这是 并发的原因,
于是试了一下,在方法上加了同步,
问题解决了