El cliente REST Swagger generado no maneja + caracteres correctamente para el parámetro de consulta

Tengo este método de controlador Spring REST:

@ApiOperation("My method")
@RequestMapping(method = RequestMethod.POST, value = "/myMethod")
public void myMethod(@RequestParam("myParam") String myParam) {
...
}

El cliente REST se genera utilizando la CLI swagger codegen con lenguajeJava y bibliotecare-estampar:

public void myMethod(String myParam) throws RestClientException {
    ...
    return apiClient.invokeAPI(path, HttpMethod.POST, queryParams, postBody, headerParams, formParams, accept, contentType, authNames, returnType);
}

Y el código fuente paraApiClient#invokeAPI - que también se genera - es:

public <T> T invokeAPI(String path, HttpMethod method, MultiValueMap<String, String> queryParams, Object body, HttpHeaders headerParams, MultiValueMap<String, Object> formParams, List<MediaType> accept, MediaType contentType, String[] authNames, ParameterizedTypeReference<T> returnType) throws RestClientException {
    updateParamsForAuth(authNames, queryParams, headerParams);

    final UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(basePath).path(path);
    if (queryParams != null) {
        builder.queryParams(queryParams);
    }

    final BodyBuilder requestBuilder = RequestEntity.method(method, builder.build().toUri());
    if(accept != null) {
        requestBuilder.accept(accept.toArray(new MediaType[accept.size()]));
    }
    if(contentType != null) {
        requestBuilder.contentType(contentType);
    }

    addHeadersToRequest(headerParams, requestBuilder);
    addHeadersToRequest(defaultHeaders, requestBuilder);

    RequestEntity<Object> requestEntity = requestBuilder.body(selectBody(body, formParams, contentType));

    ResponseEntity<T> responseEntity = restTemplate.exchange(requestEntity, returnType);
    ...
}

Ahora cuando llamomyMethod pasando una cadena que contiene un+ registrarsemyParam, en el servidor recibo un carácter de espacio en lugar del+. Parece ser un problema de codificación, ya que el signo más está reservado en los parámetros de consulta de URL para reemplazar el carácter de espacio. ¿Es esto un error del codegen swagger o de las clases de Spring o ningún error? ¿Cómo puedo arreglar eso?

EDITAR:

La definición de Swagger es como (generada desde el controlador Spring REST):

{
  "swagger": "2.0",
  ...
  "paths": {
    "/myMethod": {
      "get": {
        "operationId": "myMethod",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "myParam",
            "in": "query",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
           ...
        }
      }
    }
 ...
}

EDITAR:

Problemas similares parecen ser la codificación de variables de ruta. Cuando paso"bla:bla/bla" a una variable de ruta los caracteres especiales: y/ no se codificará pero se enviará tal cual, lo que provoca un error en el lado del servidor porque no se encontró la asignación.

Respuestas a la pregunta(1)

Su respuesta a la pregunta