code: public Stat setData(final String path, byte data[], int version)
              throws KeeperException, InterruptedException {
          verbotenThreadCheck();
          final String clientPath = path;
          PathUtils.validatePath(clientPath);
  
          final String serverPath = prependChroot(clientPath);
  
          RequestHeader h = new RequestHeader();
          h.setType(ZooDefs.OpCode.setData);
          SetDataRequest request = new SetDataRequest();
          request.setPath(serverPath);
          request.setData(data);
          request.setVersion(version);
          SetDataResponse response = new SetDataResponse();
          ReplyHeader r = cnxn.submitRequest(h, request, response, null);
          if (r.getErr() != 0) {
              throw KeeperException.create(KeeperException.Code.get(r.getErr()),
                      clientPath);
          }
          return response.getStat();
      }
docs: Set the data for the node of the given path if such a node exists and the
  given version matches the version of the node (if the given version is
  -1, it matches any node's versions). Return the stat of the node.
  <p>
  This operation, if successful, will trigger all the watches on the node
  of the given path left by getData calls.
  <p>
  A KeeperException with error code KeeperException.NoNode will be thrown
  if no node with the given path exists.
  <p>
  A KeeperException with error code KeeperException.BadVersion will be
  thrown if the given version does not match the node's version.
  <p>
  The maximum allowable size of the data array is 1 MB (1,048,576 bytes).
  Arrays larger than this will cause a KeeperExecption to be thrown.
  
  @param path
  the path of the node
  @param data
  the data to set
  @param version
  the expected matching version
  @return the state of the node
  @throws InterruptedException
  If the server transaction is interrupted.
  @throws KeeperException
  If the server signals an error with a non-zero error code.
  @throws IllegalArgumentException
  if an invalid path is specified