< 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 >