I have a stateless bean injected by container. When called, this bean throws a 
checked exception (Failure). But the exception that caller catches is runtime 
exception (IllegalStateException).

Here is a short example:

  | class Failure extends Exception {
  |     ...
  | }
  | 
  | @Local
  | public interface OutputQueueHandler {
  |     public void handle(...) throws Failure;
  | }
  | 
  | @Stateless
  | public class OutputQueueHandlerBean implements OutputQueueHandler {
  | 
  |     @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
  |     public void handle(...) throws Failure {
  |             try {
  |                     ...
  |                     persistError('ACK');   // 1.A
  |                     throw new Failure();   // 1.B
  |                     ...
  |             }
  |             catch (RuntimeException e) {
  |                     throw new Failure(e);
  |             }
  |     }
  | }
  | 
  | @MessageDriven(...)
  | @Depends(...)
  | public class OutputQueueMDB implements MessageListener {
  | 
  |     @EJB
  |     OutputQueueHandler outputQueueHandler;
  | 
  |     public void onMessage(javax.jms.Message message) {
  |             ...
  |             try {
  |                     outputQueueHandler.handle(...);  // 2
  |             }
  |             catch (RuntimeException e) {
  |                     persistError('HANDLE'); // 3
  |             }
  |             ...
  |     }
  | }
  | 

I have read somewhere that it is OK to throw checked exceptions. All I can find 
now is http://www.devx.com/Java/Article/30496/1763/page/3 (search for text 
"Exception Handling")

Is it because the bean method is annotated with 
TransactionAttributeType.REQUIRES_NEW?

How can I get my original exception?

My environment is JBoss 4.2.1 GA with EJB 3.0

Thanks,
Tvrtko

View the original post : 
http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4256470#4256470

Reply to the post : 
http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4256470
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to