2012-03-19 28 views
8

Câu hỏi:PMD thông báo "Tránh sử dụng java.lang.ThreadGroup; nó không phải là thread an toàn"

Tại sao maven PMD plugin được đem lại cho tôi những cảnh báo sau đây cho các dòng mã dưới đây: Cảnh báo:

Tránh sử dụng java.lang.ThreadGroup; nó không phải là chủ đề an toàn

Mã (dòng thứ hai):

Calendar cal = Calendar.getInstance(); 
java.sql.Date endDate = new java.sql.Date(cal.getTime().getTime()); 

Bối cảnh:

Tôi có confit này một instantiation 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) {} 
    } 
} 

}

Điểm mấu báo cáo của PMD là

java.sql.Date endDate = new java.sql.Date(cal.getTime().getTime()); 

Và thông điệp là:

Avoid using java.lang.ThreadGroup; it is not thread safe 
+1

Điều này không liên quan gì đến maven. Plugin PMD maven chỉ là một người thực hiện cho PMD, lỗi nằm trong PMD. –

+0

Làm rõ tuyệt vời Sean, tks. –

Trả lời

4

lỗi liên quan từ dự án. Điều này đã được sửa trong 5.X của PMD. Nó cũng nằm trong phiên bản 3.0.1 của plugin maven PMD.

Tôi đã thấy câu hỏi này trước khi tôi tìm thấy lỗi. Có lẽ điều này sẽ giúp các coder tiếp theo.

Các vấn đề liên quan