Como capturar a exceção StaleStateException

Pessoal

Na minha aplicação, uso EJB 2.1 e Hibernate. Os métodos dos EJB são todos CMT.

Utilizo o atributo “version” do Hibernate para controlar o lock das transações.

Porém, caso dê algum conflito de versão em algum update, o Hibernate lança uma exceção do tipo “StaleStateException”, a qual não é capturada pelo meu bloco try/catch.

O código está mais ou menos assim:

try {
   // faz algo que pode lançar uma StaleStateException...
} catch(StaleStateException sse){
   // faz algo...
} catch(Throwable t){
   // faz algo...
}

no StackTrace da exceção, eu consigo ver que é uma exceção do tipo StaleStateException, porém, ela cai direto no catch “Throwable” e não no “StaleStateException”.

Pesquisei bastante e vi que várias pessoas tem o mesmo problema, mas não consegui achar solução para isto.

Alguém sabe o que posso fazer?

Obrigado