// 初始化执行器
threadPool = Executors.newFixedThreadPool(PROCESSOR_NUMBER, new ThreadFactory()
{
private AtomicInteger seqNo = new AtomicInteger(1);
public Thread newThread(Runnable r)
{
return new Thread(r, "Message-Thread-" + seqNo.getAndIncrement());
}
});
Fortify 扫描了之后报出如下警告, J2EE Bad Practices:Threads (FORTIFY.J2EE_Bad_Practices--Threads) 0. InCall: Thread()
请问该怎么改啊?
1
hustlike 2017-08-18 11:35:19 +08:00
感觉这个是 Fortify 的问题啊,没有识别出这里是线程池,估计是觉得自己创建线程不是 best practice 吧。
|
2
palmers 2017-08-18 11:41:11 +08:00
好像是说你创建线程的时候方式不太好 可能是因为没有指定 Group 这方面区别我也不是很清楚 你自己看下
|
3
hqtc OP @hustlike 哎对啊,我看这段代码意思只是给后面要执行的线程绑定一个带编号的名字而已,又没有 start() 和 run()... 感觉要自定义一个 Thread 子类了,不知道能不能消掉警告,哎,就很烦
|
5
SoloCompany 2017-08-18 22:53:12 +08:00 via iPad
没办法,j2ee 的规范之一貌似是 webapp 不能自己管理线程,即使非禁止
如果你写的不是 webapp,那就是 fo rtify 没配置好啰 |