code: public Server build() throws ServerException {
          try {
              return AccessController.doPrivileged(new PrivilegedExceptionAction<Server>() {
  
                  @Override
                  public Server run() {
                      return buildWithPriv();
                  }
              });
          } catch (PrivilegedActionException e) {
              Exception target = e.getException();
              if (target instanceof ServerException) {
                  throw (ServerException) target;
              } else if (target instanceof RuntimeException) {
                  throw (RuntimeException) target;
              } else {
                  throw new InvalidInstallException(target);
              }
          }
      }
docs: Get a new {@link Server} instance. This will fail if the server does not
  already exist (<code>${server.config.dir}</code> must exist, and must contain
  a <code>server.xml</code> file).
  
  @return a Server instance using any attributes set on the builder.
  
  @throws ServerException if the named server does not exist, or if the attributes
  set using the set methods fail validation, e.g. the server name
  contains invalid characters, or the provided Files point to existing
  files in the file system instead of directories.