Обычно сеанс по-прежнему содержит атрибуты при передаче через параметр HttpSessionEvent в sessionDestroyed. Вам следует проверить, есть ли в вашем приложении другой SessionListener, который очищает ваш сеанс. Помните, что слушатели сеансов также могут быть объявлены в TLD.
Например, для компонентов Woodstock JSF SessionListener объявлен где-то в TLD.
Если вы обнаружите такой случай, удалите SessionListener из TLD и переместите его в файл web.xml в нужном вам порядке.
Я бы рекомендовал сначала создать пустое веб-приложение без дополнительных библиотек, чтобы получить четкое изображение. Я почти уверен, что атрибуты должны быть там.