It is unclear whom is responsible for managing HTTP connections that are created by the FcrepoClient on behalf of the user. Presumably the FcrepoClient is, but in my environment I'm running across the following issues:
1. Connections are only released if the user of FcrepoClient reads the response body. If the user of the FcRepo client does not read the response body, the FcrepoClient eventually blocks waiting for a free connection.
2. If an FcrepoOperationFailedException is thrown, the user of FcrepoClient has no access to the response body, and cannot free the connection. If enough exceptions are thrown, the FcrepoClient will eventually block waiting for free connections
A PR demonstrating the issue follows.