SimpleDateFormat
最近、スレッドセーフではないため、多くのバグに遭遇しました。
私が見つけた理由は、適切に同期されていないか、別のスレッドに対して新しいインスタンスが作成されていなかったためです。
そこで、PMD/Checkstyle を作成して、将来誰かが使用するSimpleDateFormat
と、スレッドセーフではないという警告が表示されるようにしようと考えました。
私は Checkstyle を初めて使用します。これを達成する方法を誰か説明してもらえますか?
SimpleDateFormat
最近、スレッドセーフではないため、多くのバグに遭遇しました。
私が見つけた理由は、適切に同期されていないか、別のスレッドに対して新しいインスタンスが作成されていなかったためです。
そこで、PMD/Checkstyle を作成して、将来誰かが使用するSimpleDateFormat
と、スレッドセーフではないという警告が表示されるようにしようと考えました。
私は Checkstyle を初めて使用します。これを達成する方法を誰か説明してもらえますか?
DateFormat が静的フィールドとして定義されている場合、FindBugs は警告を出力することがあります。しかし、オブジェクトがどのように使用されているかを理解する必要があるため、DateFormat の非スレッドセーフな使用を検出することは非常に困難です。これに対して CheckStyle ルールを書くことは不可能だと思います。少なくとも、大量の誤検知を検出しないわけではありません。
おそらく、DateFormat の直接使用を禁止してカスタム クラスにラップするか、スレッド セーフな Apache コモンズ FastDateFormat の使用を義務付けるべきでしょう。