问题:
为什么maven PMD插件会给出以下代码行的以下警告: 警告:
避免使用java.lang.ThreadGroup;它不是线程安全的
代码(第二行):
Calendar cal = Calendar.getInstance();
java.sql.Date endDate = new java.sql.Date(cal.getTime().getTime());
上下文
我有这个confit 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
答案 0 :(得分:7)
这似乎是PMD 4.2.6中的一个错误。
SourceForge的链路:
http://sourceforge.net/projects/pmd/forums/forum/188192/topic/4781145
答案 1 :(得分:4)
项目中的相关错误。这在PMD的5.X中得到修复。它也是PMD maven插件的3.0.1版本。
在我发现错误之前,我看到了这个问题。也许这会帮助下一个程序员。