2012-01-17 17 views
2

最近、SimpleDateFormatはスレッドセーフではないため、多くのバグが発生しました。SimpleDateFormatのCheckstyle/PMDルールはスレッドセーフではありません。

私が見つけた理由は、正しく同期されていなかったか、別のスレッド用に新しいインスタンスが作成されていなかったからです。

私はPMD/Checkstyleを作成して、誰かが将来使用する場合はSimpleDateFormatを作成して、スレッドセーフではないという警告を表示すると考えました。

私はCheckstyleを初めて勉強しました。

+0

Checkstyle!= PMD。彼らは異なるプロジェクトです。 – palacsint

答えて

3

FindBugsは、DateFormatが静的フィールドとして定義されている場合に警告を出力できます。しかし、オブジェクトの使用方法を理解する必要があるため、DateFormatのスレッドセーフでない使用を検出することは非常に困難です。私はこれについてCheckStyleルールを書くことは可能だとは思わない。少なくとも、偽陽性の多くを検出することはできません。

DateFormatを直接使用することを禁止し、それをカスタムクラスにラップするか、またはスレッドセーフであるApache Commons FastDateFormatの使用を強制する必要があります。

関連する問題