FCREPO-2313 addressed an issue where entity bodies were being included in responses that MUST NOT carry entity bodies, per RFC 2616.
Unfortunately, the fix for
FCREPO-2313 was incomplete. The WebApplicationExceptionMapper adds entity bodies to responses without regard for their status code. In particular ContentExposingResource#evaluateRequestPreconditions(...) may lead to an exception being thrown with a 304 response code.
The consequences of this issue are the same as the consequences for
FCREPO-2313- that is, application servers and clients get confused when processing responses that contain entity bodies when they otherwise shouldn't.
In addition, the request logic is a bit unclear to me, but it seems that the intent is that if preconditions fail, an exception should be thrown by ContentExposingResource#evaluateRequestPreconditions(...). In that case shouldn't the response be a 412?