@Target(value=METHOD)
@Retention(value=RUNTIME)
public @interface AroundTimeout
InvocationContext
and have a return type Object
. The method must not be
declared as abstract, final, or static.
@AroundTimeout public Object interceptTimeout(InvocationContext ctx) throws Exception { ... }
AroundTimeout
methods may be declared in interceptor classes, in the superclasses of interceptor classes, in
the target class, and/or in superclasses of the target class.
A given class must not declare more than one AroundTimeout
method.
An AroundTimeout
method can invoke any component or resource that its corresponding timeout method can
invoke.
InvocationContext.getTimer()
allows any AroundTimeout
method to retrieve the timer
object associated with the timeout.
In general, AroundTimeout
method invocations occur within the same transaction and security context as the
timeout method on which they are interposing.
AroundTimeout
methods may throw any exceptions that are allowed by the throws clause of the timeout method
on which they are interposing. They may catch and suppress exceptions and recover by calling
InvocationContext.proceed()
.