Verificar uma mudança de comportamento na herança da exceção do aplicativo EJB

Iniciando com a especificação Java EE 6.0, as exceções do aplicativo são herdadas pelas classes de exceção da subclasse, por padrão. Este comportamento é configurável na anotação @ApplicationException ou no elemento <application-exception> de um arquivo ejb-jar.xml.

Esta regra sinaliza a anotação javax.ejb.ApplicationException se ela não tiver um atributo inherited definido e ela sinaliza o elemento <application-exception> em um arquivo ejb-jar.xml que não possui um elemento inherited definido.


Por exemplo, a regra sinaliza a anotação @ApplicationException a seguir:
< span class="Code"> @ApplicationException(rollback = true)
public class ExceptionA extends Exception {
}

public class ExceptionB extends ExceptionA {
}

A regra também sinaliza o elemento <application-exception> em um ejb-jar.xml no exemplo a seguir:
< span class="Code"> < application-exception>
    < exception-class>ExceptionA< /exception-class>
      < rollback> true < /rollback>
</application-exception>


As exceções no ejb-jar.xml podem ser implementadas no aplicativo, tal como no exemplo a seguir:
< span class="Code="> public class ExceptionA estende a Exceção {
}

public class ExceptionB extends ExceptionA {
}

No Java EE 5.0, ExceptionB não é considerado uma ApplicationException, mas no Java EE 6.0, ExceptionB é uma ApplicationException porque ela se estende da classe ExceptionA. O Java EE 6.0 incluiu o atributo inherited com o valor padrão de true, portanto, todas as classes herdadas também são ApplicationException.

É possível preservar o comportamento do Java EE 5.0 nas seguintes maneiras:

Para obter informações adicionais, consulte os recursos a seguir: