JMSException is a little overused on concrete classes
if the concrete implementation doesn't explicitly throw a JMSException, it does not need to be declared as part of the method signature. for example, SQSMessageConsumer.setMessageListener does not need to declare this exception.
i have a desire to use this implementation and i'm ok w/ using the SQS* classes directly (i'm wrapping them in other code). not having to deal w/ these exceptions when they aren't actually thrown would be helpful and help simplify the underlying code.
there also seems to be inconsistency in how RuntimeException subclasses are handled. in some cases, they are re-wrapped and re-thrown as JMSExceptions (bleh). in other cases, they are not.
Marking as feature request to review the way exceptions are handled, rethrown and declared.