Regarding this subject, a fix has been done (
CXF-3662) but I have some reasons to think that it has not been done in the right way.
In the given example, there is one normal response (status code = 200) and one response which is an error (status code = 400). In that case the fix is doing the right thing, the first type is take into account and the error type can be managed by an exception mapper (from what I see in the documentation of RESTEasy and Jersey).
But in the case we introduce another response like shown in the example just below:
then the return type for the corresponding method in the generated interface will be "userDefaults". Since a Java method can only return an object of a given type then it will never be possible to return an object of type "noContent".
So I think the only way to solve this case is to return a type "javax.ws.rs.core.Response".
The only workaround I found is to remove the type type specified in the response to make sure that we always have a return type "Response".