changeset 741:0b1c7f982cc0

6780803: Wrong parameter name in description of EventClient::addListeners() 6470295: Misleading exception message says context classloader when it isn't 6714954: Description of MBeanPermission checking in MBeanServer javadoc is inaccurate 6732037: Event Service spec needs more detail about Executor use 6740900: Specify that listeners invoked via SendNotification should not block 6778436: Typo in @NotificationInfos spec Reviewed-by: dfuchs
author emcmanus
date Tue, 09 Dec 2008 18:30:27 +0100
parents 30239cf868b0
children 0dc9fc01e5d6
files src/share/classes/com/sun/jmx/mbeanserver/MBeanInstantiator.java src/share/classes/javax/management/MBeanRegistration.java src/share/classes/javax/management/MBeanServer.java src/share/classes/javax/management/event/EventClient.java src/share/classes/javax/management/event/FetchingEventRelay.java
diffstat 5 files changed, 22 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/src/share/classes/com/sun/jmx/mbeanserver/MBeanInstantiator.java	Tue Dec 09 17:41:59 2008 +0100
+++ b/src/share/classes/com/sun/jmx/mbeanserver/MBeanInstantiator.java	Tue Dec 09 18:30:27 2008 +0100
@@ -645,7 +645,7 @@
             }
         } catch (ClassNotFoundException e) {
             throw new ReflectionException(e,
-            "The MBean class could not be loaded by the context classloader");
+            "The MBean class could not be loaded");
         }
         return theClass;
     }
--- a/src/share/classes/javax/management/MBeanRegistration.java	Tue Dec 09 17:41:59 2008 +0100
+++ b/src/share/classes/javax/management/MBeanRegistration.java	Tue Dec 09 18:30:27 2008 +0100
@@ -79,6 +79,9 @@
  * }
  * </pre>
  *
+ * <p>(Listeners may be invoked in the same thread as the caller of
+ * {@code sender.sendNotification}.)</p>
+ *
  * <p>A field to be injected must not be static.  It is recommended that
  * such fields be declared {@code volatile}.</p>
  *
--- a/src/share/classes/javax/management/MBeanServer.java	Tue Dec 09 17:41:59 2008 +0100
+++ b/src/share/classes/javax/management/MBeanServer.java	Tue Dec 09 18:30:27 2008 +0100
@@ -186,11 +186,11 @@
  * caller's permissions must imply {@link
  * MBeanPermission#MBeanPermission(String,String,String,ObjectName,String)
  * MBeanPermission(mbeanServerName, null, null, null, "queryMBeans")}.
- * Additionally, for each MBean that matches <code>name</code>,
+ * Additionally, for each MBean <em>n</em> that matches <code>name</code>,
  * if the caller's permissions do not imply {@link
  * MBeanPermission#MBeanPermission(String,String,String,ObjectName,String)
- * MBeanPermission(mbeanServerName, className, null, name, "queryMBeans")}, the
- * MBean server will behave as if that MBean did not exist.</p>
+ * MBeanPermission(mbeanServerName, className, null, <em>n</em>, "queryMBeans")},
+ * the MBean server will behave as if that MBean did not exist.</p>
  *
  * <p>Certain query elements perform operations on the MBean server.
  * If the caller does not have the required permissions for a given
--- a/src/share/classes/javax/management/event/EventClient.java	Tue Dec 09 17:41:59 2008 +0100
+++ b/src/share/classes/javax/management/event/EventClient.java	Tue Dec 09 18:30:27 2008 +0100
@@ -187,9 +187,10 @@
      * forwarded by the {@link EventClientDelegateMBean}. If {@code null}, a
      * {@link FetchingEventRelay} object will be used.
      * @param distributingExecutor Used to distribute notifications to local
-     * listeners. If {@code null}, the thread that calls {@link
-     * EventReceiver#receive EventReceiver.receive} from the {@link EventRelay}
-     * object is used.
+     * listeners. Only one job at a time will be submitted to this Executor.
+     * If {@code distributingExecutor} is {@code null}, the thread that calls
+     * {@link EventReceiver#receive EventReceiver.receive} from the {@link
+     * EventRelay} object is used.
      * @param leaseScheduler An object that will be used to schedule the
      * periodic {@linkplain EventClientDelegateMBean#lease lease updates}.
      * If {@code null}, a default scheduler will be used.
@@ -545,7 +546,7 @@
      *
      * <P>The method returns the listeners which were added successfully. The
      * elements in the returned collection are a subset of the elements in
-     * {@code infoList}. If all listeners were added successfully, the two
+     * {@code listeners}. If all listeners were added successfully, the two
      * collections are the same. If no listener was added successfully, the
      * returned collection is empty.</p>
      *
--- a/src/share/classes/javax/management/event/FetchingEventRelay.java	Tue Dec 09 17:41:59 2008 +0100
+++ b/src/share/classes/javax/management/event/FetchingEventRelay.java	Tue Dec 09 18:30:27 2008 +0100
@@ -39,10 +39,18 @@
 import javax.management.remote.NotificationResult;
 
 /**
- * This class is an implementation of the {@link EventRelay} interface. It calls
+ * <p>This class is an implementation of the {@link EventRelay} interface. It calls
  * {@link EventClientDelegateMBean#fetchNotifications
  * fetchNotifications(String, long, int, long)} to get
- * notifications and then forwards them to an {@link EventReceiver} object.
+ * notifications and then forwards them to an {@link EventReceiver} object.</p>
+ *
+ * <p>A {@code fetchExecutor} parameter can be specified when creating a
+ * {@code FetchingEventRelay}.  That is then the {@code Executor} that will
+ * be used to perform the {@code fetchNotifications} operation.  Only one
+ * job at a time will be submitted to this {@code Executor}.  The behavior
+ * is unspecified if {@link Executor#execute} throws an exception, including
+ * {@link java.util.concurrent.RejectedExecutionException
+ * RejectedExecutionException}.
  *
  * @since JMX 2.0
  */