2012-01-17 45 views
2

最近我遇到了很多错误,因为SimpleDateFormat不是线程安全的。SimpleDateFormat的Checkstyle/PMD规则不是线程安全警告

我发现的原因是它没有正确同步,或者没有为单独的线程创建新的实例。

所以我想我们来创建一个PMD/Checkstyle,以便将来如果有人使用SimpleDateFormat,他会得到一些关于它不是线程安全的警告。

我是Checkstyle的新手,任何人都可以描述我如何实现这一目标?

+0

Checkstyle!= PMD。他们是不同的项目。 – palacsint 2012-01-17 12:22:20

回答

3

当DateFormat被定义为静态字段时,FindBugs可以输出警告。但是,检测DateFormat的非线程安全使用非常困难,因为它需要了解如何使用对象。我不认为为此写一个CheckStyle规则是可能的。至少不是没有检测到大量的误报。

也许您应该禁止直接使用DateFormat,并将其包装到自定义类中,或者强制使用Apache commons FastDateFormat,这是线程安全的。