private static final SimpleDateFormat COMMON_DATE = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
public static String formatDate(Date d){
return COMMON_DATE.format(d);
}
Bug: Call to method of static java.text.DateFormat in com.pbn.oss.resource.template.input.ws.service.InputTemplateWSServiceImpl.formatDate(Date)
As the JavaDoc states, DateFormats are inherently unsafe for multithreaded use. The detector has found a call to an instance of DateFormat that has been obtained via a static field. This looks suspicous.
For more information on this see Sun Bug #6231579 and Sun Bug #6178997.
Confidence: Normal, Rank: Scary (8)
Pattern: STCAL_INVOKE_ON_STATIC_DATE_FORMAT_INSTANCE
Type: STCAL, Category: MT_CORRECTNESS (Multithreaded correctness)
英文解释已经比较清楚,在Java文档中,已经明确说明了DateFormats 是非线程安全的。
看来只有每次调用时创建一个新的SimpleDateFormat了:
private static final String COMMON_DATE = "yyyy-MM-dd HH:mm:ss";
public static String formatDate(Date d){
return new SimpleDateFormat(COMMON_DATE).format(d);
}