itext html文件路径,又是被开源坑的一天,itext html2pdf,导致文件资源过多

早上,运维甩来两个报错

75be1032136054260a0b9e9356c403b9.png

6f8805217906482a69e162a38f39225f.png

每个进程可打开的文件描述符有限制,为啥还把nio和dubbo的socket给搞爆了???

ok,fine,看看现在打开了多少文件吧。。。

b79d7622b2cc5a45fa38203b056049b6.png

wtf??这是啥玩意儿,问了问开发同学,html转pdf中,html代码用到了这个字体。。。

ok,那就看看这个加载的代码吧

868689483984835ed20de17e6dddde66.png

再进去看到一个addfont的东西

be829236a847d8edd1ef13b5f050a7c3.png

进入到这个create方法

e92296da11ed8ce8860b7bc71d6e0d7d.png

------------华丽丽的分割线-----------------

里面有这么一个玩意儿,这是一个伏笔,一会儿说

1d06af13cb84600364b5f92e4fa07819.png

-----------华丽丽的结束------------------

再往下走,进到里面

ebaa06a050f96272c1afeff4681e8c9a.png

这里会创建一个Parser对象,里面调用了一个initial代码,再看看这个初始化方法,问题就在这里

f29f4878566eaba67f6b2ec82c25321b.png

初始化方法里面会去调用创建这个资源,但是判断的时候却看到他这里出现了不可读的情况????what the ffffff??对我的字体文件有啥意见???我可以某度上下的。

然后问题来了,他还是读取了这个文件

05c52eb83a3630757c596ec9d64c23df.png

然后bug来了,这里抛出了IO异常,你抛出ok,fine没问题,你这时候跟着这个方法一路往上走

f9d4ee51b86731da1e4b7594a81ed41f.png

550748600c07499eaebd1aa4695d781b.png

兄弟,你告诉我这是什么???你没关资源啊!!!!finally呢???

c279437138cda4f51d3c7dcc6405de06.png

文件还开在这里啊兄弟!!!

因为这个转换线程是个守护线程,只要有任务过来就会一直不断重复创建这个对象,然后不断IO异常,然后不断开文件。。。。。。。again & again & again。。。

所以解决方法就是,把这字体文件 down to the sea,goodbye motherfuxxxxxxker。。。。

或者更改代码,只初始化一次,这样就算错了,也不会资源泄漏,让我改代码,ok,fine,下个版本一定重构。。。。

ed5bec4a54260f5d6454b0fb7e59a092.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值