docs: private ResponseEntity<?> handleRequestInternal(HttpMethod method, HttpEntity<?> requestEntity) {
          HttpMessage request = endpointConfiguration.getMessageConverter().convertInbound(requestEntity, endpointConfiguration, null);
  
          HttpServletRequest servletRequest = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
          UrlPathHelper pathHelper = new UrlPathHelper();
  
          Enumeration allHeaders = servletRequest.getHeaderNames();
          for (String headerName : CollectionUtils.toArray(allHeaders, new String[] {})) {
              if (request.getHeader(headerName) == null) {
                  String headerValue = servletRequest.getHeader(headerName);
                  request.header(headerName, headerValue != null ? headerValue : "");
              }
          }
  
          if (endpointConfiguration.isHandleCookies()) {
              request.setCookies(servletRequest.getCookies());
          }
  
          if (endpointConfiguration.isHandleAttributeHeaders()) {
              Enumeration<String> attributeNames = servletRequest.getAttributeNames();
              while (attributeNames.hasMoreElements()) {
                  String attributeName = attributeNames.nextElement();
                  Object attribute = servletRequest.getAttribute(attributeName);
                  request.setHeader(attributeName, attribute);
              }
          }
  
          request.path(pathHelper.getRequestUri(servletRequest))
                  .uri(pathHelper.getRequestUri(servletRequest))
                  .contextPath(pathHelper.getContextPath(servletRequest))
                  .queryParams(Optional.ofNullable(pathHelper.getOriginatingQueryString(servletRequest))
                                      .map(queryString -> queryString.replaceAll("&", ","))
                                      .orElse(""))
                  .version(servletRequest.getProtocol())
                  .method(method);
  
          Message response = endpointAdapter.handleMessage(request);
  
          ResponseEntity<?> responseEntity;
          if (response == null) {
              responseEntity = new ResponseEntity<>(HttpStatus.valueOf(endpointConfiguration.getDefaultStatusCode()));
          } else {
              HttpMessage httpResponse;
              if (response instanceof HttpMessage) {
                  httpResponse = (HttpMessage) response;
              } else {
                  httpResponse = new HttpMessage(response);
              }
  
              if (httpResponse.getStatusCode() == null) {
                  httpResponse.status(HttpStatus.valueOf(endpointConfiguration.getDefaultStatusCode()));
              }
  
              responseEntity = (ResponseEntity<?>) endpointConfiguration.getMessageConverter().convertOutbound(httpResponse, endpointConfiguration, null);
  
              if (endpointConfiguration.isHandleCookies() && httpResponse.getCookies() != null) {
                  HttpServletResponse servletResponse = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getResponse();
                  for (Cookie cookie : httpResponse.getCookies()) {
                      servletResponse.addCookie(cookie);
                  }
              }
          }
          responseCache.add(responseEntity);
          
          return responseEntity;
      }