geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dain Sundstrom <d...@coredevelopers.net>
Subject Re: InvocationResult
Date Sun, 24 Aug 2003 21:07:29 GMT
On Sunday, August 24, 2003, at 12:50 PM, Jeremy Boynes wrote:

> Hmmm - thinking about it, that last bit seems to make more sense. It
> mirrors the distinction between 'normal' completion and a system
> exceptions as defined for EJBs; it makes the code for the interceptors
> simpler; it allows us to add meta-values to any normal completion and
> although we can't add them to system exceptions I don't think that's a
> big downside.
>
> So the CallbackInterceptor would then be
>
>   try {
>     Object result = callbackMethod.invoke(instance, callbackArgs);
>     return new SimpleInvocationResult(result);
>   } catch (InvocationTargetException e) {
>     Throwable cause = e.getCause();
>     if (cause instanceof Exception && !(cause instanceof
> RuntimeException)) {
>       return new SimpleInvocationResult((Exception)cause));
>     } else {
>       throw cause;
>     }
>   }
>
> and the code David had above would work nicely.
>
> Any objections?

No.  I have completely flip flopped on this issue.  After yet another 
read of the exception chapter from the EJB specification, it is clear 
that to the container an application exception is an normal okay result 
from an EJB.  The spec treats application exceptions exactly like a 
normal method return, so I think packing the application exception in 
the invocation response object is the right thing to do.

-dain

*************************
  * Dain Sundstrom
  * Partner
  * Core Developers Network
  *************************/


Mime
View raw message