ActiveMQ is not compliant with JSR-250, which states:
- The method MUST NOT throw a checked exception.
- If the method throws an unchecked exception the class MUST NOT be put into
service. In the case of EJBs the method annotated with PostConstruct can
handle exceptions and cleanup before the bean instance is discarded.
(same as above)
An exception was thrown when attempting to deploy an application using the activemq-rar-5.8 on GF 4.0, but I believe it's safe to say that this can occur in different containers - if not now, potentially between container releases.
Included are patches that fix this in all ActiveMQ components. Most check exceptions thrown were Exception, which was changed to RuntimeException (trapped and wrapped). There were also IOExceptions being thrown, in which case ActiveMQ-broker now has an IORuntimeException class that is thrown. Any downstream catches that handled the check exceptions have been converted to catch the RuntimeExceptions.
This was also reported under
AMQ-4673, but the scope of that issue was a lot more limited.