@Target(value=METHOD) @Retention(value=RUNTIME) public @interface AroundTimeout
Defines an interceptor method that interposes on timeout methods.
The method must take a single parameter of type
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()
.
Copyright © 1996-2017, Oracle and/or its affiliates. All Rights Reserved. Use is subject to license terms.