Thứ Tư, 15 tháng 3, 2006

Name và Id - dễ phát sinh lỗi khó tìm

Lỗi do khác hàng gửi lại là không add được portlet tới một page nếu tên của portlet đó có khoảng trắng.

1 nhận xét:

  1. Nguyên nhân cũng tương đối khó tìm, đó là phải biết chính xác được vị trí code sinh id. Thông thường trong thiết kế, object data cần có một id để lưu vào database, lập trình viên luôn chọn phương án name -> id (có thể qua một quy tắc nào đó ví dụ dùng hàm hashCode của lớp String) . Vấn đề là tên có thể xuất hiện ký tự lạ, thường gặp nhất là khoảng trắng, như vậy việc sinh ra id sẽ bao gồm cả bước xử lí các ký tự lạ này. Ok object data đã lưu vào database. Nhưng khi lấy lại object, input đầu vào thường là name, cài đặt lại chuyển đổi một bước nữa tới id rồi dựa vào id này tìm ra object. Bug hay phát sinh chính giai đoạn này, lập trình viên thường quên mất việc xử lí các ký tự lạ dẫn đến object data không tìm được. Đây là lần thứ hai gặp phải lỗi này, dĩ nhiên không trực tiếp mà gián tiếp qua một đối tượng khác. Tương tự như eXo portal, ở xWiki cũng đã bug vấn đề upload một tập tin ảnh mà tên ảnh có chứa dấu +.

    Trả lờiXóa

nhudinhthuan@gmail.com