My server responds with status 500 instead of 400 when invalid JSON is sent 
to me dropwizard service. We tracked it down to Immutables throwing an 
IllegalStateException which Jackson then wraps as an 
InvalidDefinitionException which of course ends up triggering this line in 
the Dropwizard JsonProcessingExceptionMapper.

if (exception instanceof JsonGenerationException || exception instanceof 
InvalidDefinitionException) {
    return super.toResponse(exception); // LoggingExceptionMapper will log 
exception
}


Is there a simple way around this? A configuration or some such so that I 
properly return the status of 400? The only thing we can come up with is 
writing our own Exception Mapper and not using the drop wizard supplied 
one. But it seems heavy handed. 

public class ImmutablesJsonProcessingExceptionMapper extends 
JsonProcessingExceptionMapper {
  @Override
  public Response toResponse(JsonProcessingException exception) {
    if (exception instanceof InvalidDefinitionException) {
      exception = new JsonParseException((JsonParser) null, null, exception);
    }

    return super.toResponse(exception);
  }
}



 Thanks for any input. 

R.

-- 
You received this message because you are subscribed to the Google Groups 
"dropwizard-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/dropwizard-user/2b89feea-abb3-44e8-a5ff-8b620a78cfdf%40googlegroups.com.

Reply via email to