I discovered this while trying to create an annotation for non-json Controllers with @RequestMapping(accept="!application/json")
When the RequestMappingInfo invokes
the code checks if the accepted media type contains MEDIA_ALL. But in my case the header contained a quality argument:
and, after parsing, resulted in a mediatype */* with quality 0.8 this failed to match with the check at the end of the ProducesRequestCondition
From what I see there are multiple places where there is an attempt to match MediaType ignoring the fact that they might have a quality on them.
Either there should be an overload of .equals and .hashcode to ignore the quality, or create an ad-hoc method to compare them without considering the quality and use it every time they check for presence inside a collection