HttpSession.removeAttribute(...) should not trigger attribute removed event if attribute did not exist.
HttpSession.setAttribute(name, null) should trigger valueUnbound binding event.
HttpSession.setAttribute(name, value) should not trigger any events if value == old value.