Правило Checkstyle / PMD для SimpleDateFormat не является потокобезопасным предупреждением - PullRequest
2 голосов
/ 17 января 2012

Недавно я столкнулся со многими ошибками, поскольку SimpleDateFormat не является поточно-ориентированным.

Причина, которую я обнаружил, заключалась в том, что она не была синхронизирована должным образом или новые экземпляры не были созданы для отдельных потоков.

Итак, я подумал, что давайте создадим PMD / Checkstyle, чтобы в будущем, если кто-нибудь использует SimpleDateFormat, он получал какое-то предупреждение о том, что он не безопасен для потоков.

Я новичок в Checkstyle, кто-нибудь может описать, как мне этого добиться?

1 Ответ

3 голосов
/ 17 января 2012

FindBugs может выводить предупреждения, когда DateFormat определен как статическое поле. Но обнаружить не-поточно-ориентированное использование DateFormat очень сложно, потому что нужно понять, как используется объект. Я не думаю, что написание правила CheckStyle для этого возможно. По крайней мере, не обнаружив много ложных срабатываний.

Может быть, вам следует просто запретить прямое использование DateFormat и обернуть его в пользовательский класс или разрешить использование Apache commons FastDateFormat, который является поточно-ориентированным.

...