src/share/jaxws_classes/javax/annotation/PreDestroy.java

changeset 408
b0610cd08440
parent 368
0989ad8c0860
child 637
9c07ef4934dd
equal deleted inserted replaced
405:cc682329886b 408:b0610cd08440
35 * container. The method annotated with PreDestroy is typically used to 35 * container. The method annotated with PreDestroy is typically used to
36 * release resources that it has been holding. This annotation MUST be 36 * release resources that it has been holding. This annotation MUST be
37 * supported by all container managed objects that support PostConstruct 37 * supported by all container managed objects that support PostConstruct
38 * except the application client container in Java EE 5. The method on which 38 * except the application client container in Java EE 5. The method on which
39 * the PreDestroy annotation is applied MUST fulfill all of the following 39 * the PreDestroy annotation is applied MUST fulfill all of the following
40 * criteria:<ul> 40 * criteria:
41 * <li>The method MUST NOT have any parameters except in the case of EJB 41 * <p>
42 * interceptors in which case it takes an InvocationContext object as defined 42 * <ul>
43 * by the EJB specification.</li> 43 * <li>The method MUST NOT have any parameters except in the case of
44 * <li>The return type of the method MUST be void.</li> 44 * interceptors in which case it takes an InvocationContext object as
45 * <li>The method MUST NOT throw a checked exception.</li> 45 * defined by the Interceptors specification.</li>
46 * <li>The method defined on an interceptor class MUST HAVE one of the
47 * following signatures:
48 * <p>
49 * void &#060;METHOD&#062;(InvocationContext)
50 * <p>
51 * Object &#060;METHOD&#062;(InvocationContext) throws Exception
52 * <p>
53 * <i>Note: A PreDestroy interceptor method must not throw application
54 * exceptions, but it may be declared to throw checked exceptions including
55 * the java.lang.Exception if the same interceptor method interposes on
56 * business or timeout methods in addition to lifecycle events. If a
57 * PreDestroy interceptor method returns a value, it is ignored by
58 * the container.</i>
59 * </li>
60 * <li>The method defined on a non-interceptor class MUST HAVE the
61 * following signature:
62 * <p>
63 * void &#060;METHOD&#062;()
64 * </li>
46 * <li>The method on which PreDestroy is applied MAY be public, protected, 65 * <li>The method on which PreDestroy is applied MAY be public, protected,
47 * package private or private.</li> 66 * package private or private.</li>
48 * <li>The method MUST NOT be static.</li> 67 * <li>The method MUST NOT be static.</li>
49 * <li>The method MAY be final.</li> 68 * <li>The method MAY be final.</li>
50 * <li>If the method throws an unchecked exception it is ignored except in the 69 * <li>If the method throws an unchecked exception it is ignored except in the
51 * case of EJBs where the EJB can handle exceptions.</li> 70 * case of EJBs where the EJB can handle exceptions.</li>
71 * </ul>
52 * 72 *
53 * @see javax.annotation.PostConstruct 73 * @see javax.annotation.PostConstruct
54 * @see javax.annotation.Resource 74 * @see javax.annotation.Resource
55 * @since Common Annotations 1.0 75 * @since Common Annotations 1.0
56 */ 76 */

mercurial