code: public void setAttribute(Attribute pAttribute)
              throws AttributeNotFoundException, InvalidAttributeValueException, MBeanException, ReflectionException {
          try {
              if (!attributeInfoMap.containsKey(pAttribute.getName())) {
                  jolokiaMBeanServer.setAttribute(objectName, pAttribute);
              } else {
                  String name = pAttribute.getName();
                  MBeanAttributeInfo info = attributeInfoMap.get(name);
                  Object value;
                  if (info instanceof OpenMBeanAttributeInfo) {
                      value = fromJson(((OpenMBeanAttributeInfo) info).getOpenType(), (String) pAttribute.getValue());
                  } else {
                      value = fromJson(info.getType(), (String) pAttribute.getValue());
                  }
                  Attribute attr = new Attribute(name, value);
                  jolokiaMBeanServer.setAttribute(objectName, attr);
              }
          } catch (InstanceNotFoundException e) {
              AttributeNotFoundException exp = new AttributeNotFoundException("MBean " + objectName + " not found for attribute " + pAttribute);
              exp.initCause(e);
              throw exp;
          }
      }
docs: {@inheritDoc}