< prev index next >
jaxws/src/java.xml.ws.annotation/share/classes/javax/annotation/PreDestroy.java
Print this page
@@ -1,7 +1,7 @@
/*
- * Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
@@ -28,24 +28,25 @@
import java.lang.annotation.*;
import static java.lang.annotation.ElementType.*;
import static java.lang.annotation.RetentionPolicy.*;
/**
- * The PreDestroy annotation is used on methods as a callback notification to
- * signal that the instance is in the process of being removed by the
- * container. The method annotated with PreDestroy is typically used to
- * release resources that it has been holding. This annotation MUST be
- * supported by all container managed objects that support PostConstruct
- * except the application client container in Java EE 5. The method on which
- * the PreDestroy annotation is applied MUST fulfill all of the following
- * criteria:
+ * The <code>PreDestroy</code> annotation is used on a method as a
+ * callback notification to signal that the instance is in the
+ * process of being removed by the container. The method annotated
+ * with <code>PreDestroy</code> is typically used to
+ * release resources that it has been holding. This annotation must be
+ * supported by all container-managed objects that support the use of
+ * the <code>PostConstruct</code> annotation except the Java EE application
+ * client. The method on which the <code>PreDestroy</code> annotation
+ * is applied must fulfill all of the following criteria:
* <ul>
- * <li>The method MUST NOT have any parameters except in the case of
- * interceptors in which case it takes an InvocationContext object as
- * defined by the Interceptors specification.</li>
- * <li>The method defined on an interceptor class MUST HAVE one of the
- * following signatures:
+ * <li>The method must not have any parameters except in the case of
+ * interceptors in which case it takes an <code>InvocationContext</code>
+ * object as defined by the Interceptors specification.</li>
+ * <li>The method defined on an interceptor class or superclass of an
+ * interceptor class must have one of the following signatures:
* <p>
* void <METHOD>(InvocationContext)
* <p>
* Object <METHOD>(InvocationContext) throws Exception
* <p>
@@ -54,21 +55,21 @@
* the java.lang.Exception if the same interceptor method interposes on
* business or timeout methods in addition to lifecycle events. If a
* PreDestroy interceptor method returns a value, it is ignored by
* the container.</i>
* </li>
- * <li>The method defined on a non-interceptor class MUST HAVE the
+ * <li>The method defined on a non-interceptor class must have the
* following signature:
* <p>
* void <METHOD>()
* </li>
- * <li>The method on which PreDestroy is applied MAY be public, protected,
+ * <li>The method on which PreDestroy is applied may be public, protected,
* package private or private.</li>
- * <li>The method MUST NOT be static.</li>
- * <li>The method MAY be final.</li>
- * <li>If the method throws an unchecked exception it is ignored except in the
- * case of EJBs where the EJB can handle exceptions.</li>
+ * <li>The method must not be static.</li>
+ * <li>The method should not be final.</li>
+ * <li>If the method throws an unchecked exception it is ignored by
+ * the container.</li>
* </ul>
*
* @see javax.annotation.PostConstruct
* @see javax.annotation.Resource
* @since 1.6, Common Annotations 1.0
< prev index next >