PMD消息“避免使用java.lang.ThreadGroup;它不是线程安全的”

时间:2012-03-19 14:09:00

标签: java pmd

问题:

为什么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

2 个答案:

答案 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版本。

在我发现错误之前,我看到了这个问题。也许这会帮助下一个程序员。