【发布时间】:2012-03-19 14:08:59
【问题描述】:
问题:
为什么 maven PMD 插件会针对以下代码行给我以下警告: 警告:
避免使用 java.lang.ThreadGroup;它不是线程安全的
代码(第二行):
Calendar cal = Calendar.getInstance();
java.sql.Date endDate = new java.sql.Date(cal.getTime().getTime());
上下文:
我有一个 java.sql.Date 实例化:
public class XYZServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
this.doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse resp)
throws ServletException, IOException {
Connection conn = null;
CallableStatement stmt = null;
try {
conn = ...
...
Calendar cal = Calendar.getInstance();
java.sql.Date endDate = new java.sql.Date(cal.getTime().getTime());
...
} catch ...
}finally {
try {
stmt.close();
conn.close();
} catch(Exception e) {}
}
}
}
PMD 报告的线路是
java.sql.Date endDate = new java.sql.Date(cal.getTime().getTime());
消息是:
Avoid using java.lang.ThreadGroup; it is not thread safe
【问题讨论】:
-
这与maven无关。 maven PMD插件只是PMD的一个执行器,bug在PMD内部。
-
很好的澄清肖恩,tks。