docs: private Address setupAddress(Message message) throws URISyntaxException {
          String result = (String)message.get(Message.ENDPOINT_ADDRESS);
          String pathInfo = (String)message.get(Message.PATH_INFO);
          String queryString = (String)message.get(Message.QUERY_STRING);
          setAndGetDefaultAddress();
          if (result == null) {
              if (pathInfo == null && queryString == null) {
                  if (defaultAddress != null) {
                      message.put(Message.ENDPOINT_ADDRESS, defaultAddress.getString());
                  }
                  return defaultAddress;
              }
              if (defaultAddress != null) {
                  result = defaultAddress.getString();
                  message.put(Message.ENDPOINT_ADDRESS, result);
              }
          }
  
          // REVISIT: is this really correct?
          if (null != pathInfo && !result.endsWith(pathInfo)) {
              result = result + pathInfo;
          }
          if (queryString != null) {
              result = result + "?" + queryString;
          }
          if (defaultAddress == null) {
              return setAndGetDefaultAddress(result);
          } else {
              return result.equals(defaultAddress.getString()) ? defaultAddress : new Address(result);
          }
      }