docs: @FFDCIgnore(Throwable.class)
      String getFormattedAttribute(MBeanServer mbeanServer, ObjectName mbean, MBeanAttributeInfo attr, String indent) {
          try {
              Object attribute = mbeanServer.getAttribute(mbean, attr.getName());
              if (attribute == null) {
                  return "null";
              } else if (CompositeData.class.isAssignableFrom(attribute.getClass())) {
                  return getFormattedCompositeData(CompositeData.class.cast(attribute), indent);
              } else if (TabularData.class.isAssignableFrom(attribute.getClass())) {
                  return getFormattedTabularData(TabularData.class.cast(attribute), indent);
              } else if (attribute.getClass().isArray()) {
                  return getFormattedArray(attribute, indent);
              } else {
                  return String.valueOf(attribute);
              }
          } catch (Throwable t) {
              Throwable rootCause = t;
              while (rootCause.getCause() != null) {
                  rootCause = rootCause.getCause();
              }
  
              StringBuilder sb = new StringBuilder();
              sb.append("<<Unavailable: ");
              sb.append(rootCause.getMessage() != null ? rootCause.getMessage() : rootCause);
              sb.append(">>");
              return sb.toString();
          }
      }