code: @Override
      public void write_attributes(final AttributeValue[] values) throws DevFailed {
          MDC.setContextMap(contextMap);
          xlogger.entry();
          checkInitialization();
          deviceMonitoring.startRequest("write_attributes");
          clientIdentity.set(null);
          final String[] names = new String[values.length];
          for (int i = 0; i < names.length; i++) {
              names[i] = values[i].name;
              logger.debug("writing {}", names[i]);
          }
          final Object lock = deviceLock.getAttributeLock();
          try {
              synchronized (lock != null ? lock : new Object()) {
                  AttributeGetterSetter.setAttributeValue(values, attributeList, stateImpl, aroundInvokeImpl, null);
              }
          } catch (final Exception e) {
              deviceMonitoring.addError();
              if (e instanceof DevFailed) {
                  throw (DevFailed) e;
              } else {
                  // with CORBA, the stack trace is not visible by the client if
                  // not inserted in DevFailed.
                  throw DevFailedUtils.newDevFailed(e);
              }
          }
          xlogger.exit();
      }
docs: Write some attributes. IDL 1 version
  
  @param values a container for attribute values.
  @throws DevFailed