aws / aws/serverless-java-container

Handling ResponseStatusException Results in 502

Abierto
#342 8 comentarios 2 reacciones 1 asignado Reclamado por @sapessi Ver en GitHub
need feedback
Lenguaje dominante
Java
Estrellas
1.6k
Forks
574
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

* Framework version: 1.5 / 5.2.6-RELEASE
* Implementations: Spring

## Scenario
I am throwing a ResponseStatusException to handle 404's, 500's, etc but no matter when I throw one I am getting the following response with a 502 from the call:

```
{
"message": "Gateway timeout"
}
```

This is an example of how I am creating the ResponseStatusException:

```
if(queryResults.getSize() == 0) {
throw new ResponseStatusException(HttpStatus.NOT_FOUND, String.format("Unable To Find User for Email Address %s", email));
} else {
// Do something else
}
```

I am seeing the following in my logs so I know the exception is being thrown properly:

```
2020-05-04 21:20:04 f1ab9c4e-75ee-457f-b222-dedc69daf8f5 ERROR LambdaContainerHandler - Error while handling request
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.web.server.ResponseStatusException: 404 NOT_FOUND "Unable To Find User for Email Address invalid@email.com"
```

It doesn't seem to handle the ResponseStatusException being thrown. I added the following to my application config class:

```
/*
* optimization - avoids creating default exception resolvers; not required as the serverless container handles
* all exceptions
*
* By default, an ExceptionHandlerExceptionResolver is created which creates many dependent object, including
* an expensive ObjectMapper instance.
*
* To enable custom @ControllerAdvice classes remove this bean.
*/
@Bean
public HandlerExceptionResolver handlerExceptionResolver() {
return new HandlerExceptionResolver() {

@Override
public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {
return null;
}
};
}
```

Shouldn't the container handle the ResponseStatusException automatically?

Thanks,
Steve

## Expected behavior
The proper response code and response returned

## Actual behavior
Always retuning a 502 and Bad Gateway reponse

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.