diff --git a/scim2-sdk-client/src/main/java/com/unboundid/scim2/client/requests/CreateRequestBuilder.java b/scim2-sdk-client/src/main/java/com/unboundid/scim2/client/requests/CreateRequestBuilder.java index 9b57f72b..3ed43a20 100644 --- a/scim2-sdk-client/src/main/java/com/unboundid/scim2/client/requests/CreateRequestBuilder.java +++ b/scim2-sdk-client/src/main/java/com/unboundid/scim2/client/requests/CreateRequestBuilder.java @@ -75,6 +75,11 @@ public C invoke(final Class cls) throws ScimException if(response.getStatusInfo().getFamily() == Response.Status.Family.SUCCESSFUL) { + response.bufferEntity(); + /* fully read and close the input stream, allowing the buffered result + to be used while still keeping the TCP connection open for subsequent + requests + */ return response.readEntity(cls); } else diff --git a/scim2-sdk-client/src/main/java/com/unboundid/scim2/client/requests/ReplaceRequestBuilder.java b/scim2-sdk-client/src/main/java/com/unboundid/scim2/client/requests/ReplaceRequestBuilder.java index cfb4af36..9e5bef3d 100644 --- a/scim2-sdk-client/src/main/java/com/unboundid/scim2/client/requests/ReplaceRequestBuilder.java +++ b/scim2-sdk-client/src/main/java/com/unboundid/scim2/client/requests/ReplaceRequestBuilder.java @@ -104,6 +104,11 @@ public C invoke(final Class cls) throws ScimException if(response.getStatusInfo().getFamily() == Response.Status.Family.SUCCESSFUL) { + response.bufferEntity(); + /* fully read and close the input stream, allowing the buffered result + to be used while still keeping the TCP connection open for subsequent + requests + */ return response.readEntity(cls); } else diff --git a/scim2-sdk-client/src/main/java/com/unboundid/scim2/client/requests/SearchRequestBuilder.java b/scim2-sdk-client/src/main/java/com/unboundid/scim2/client/requests/SearchRequestBuilder.java index f19bdb74..1dc7b8ad 100644 --- a/scim2-sdk-client/src/main/java/com/unboundid/scim2/client/requests/SearchRequestBuilder.java +++ b/scim2-sdk-client/src/main/java/com/unboundid/scim2/client/requests/SearchRequestBuilder.java @@ -264,6 +264,11 @@ private void invoke( if (response.getStatusInfo().getFamily() == Response.Status.Family.SUCCESSFUL) { + response.bufferEntity(); + /* fully read and close the input stream, allowing the buffered result + to be used while still keeping the TCP connection open for subsequent + requests + */ InputStream inputStream = response.readEntity(InputStream.class); try {