/* ------------------------------------------------------------ */
  public synchronized MBeanInfo getMBeanInfo() {
    log.debug("getMBeanInfo");

    if (_dirty) {
      _dirty = false;
      ModelMBeanAttributeInfo[] attributes =
          (ModelMBeanAttributeInfo[])
              _attributes.toArray(new ModelMBeanAttributeInfo[_attributes.size()]);
      ModelMBeanOperationInfo[] operations =
          (ModelMBeanOperationInfo[])
              _operations.toArray(new ModelMBeanOperationInfo[_operations.size()]);
      ModelMBeanNotificationInfo[] notifications =
          (ModelMBeanNotificationInfo[])
              _notifications.toArray(new ModelMBeanNotificationInfo[_notifications.size()]);

      _beanInfo =
          new ModelMBeanInfoSupport(
              _object.getClass().getName(),
              findDescription(null),
              attributes,
              null,
              operations,
              notifications);
    }

    return _beanInfo;
  }