diff --git a/plugins/repository-azure/src/test/java/org/elasticsearch/repositories/azure/AzureBlobStoreRepositoryTests.java b/plugins/repository-azure/src/test/java/org/elasticsearch/repositories/azure/AzureBlobStoreRepositoryTests.java index 28993bd475a06..4bd71d8216b13 100644 --- a/plugins/repository-azure/src/test/java/org/elasticsearch/repositories/azure/AzureBlobStoreRepositoryTests.java +++ b/plugins/repository-azure/src/test/java/org/elasticsearch/repositories/azure/AzureBlobStoreRepositoryTests.java @@ -199,7 +199,7 @@ public void handle(final HttpExchange exchange) throws IOException { exchange.getResponseBody().write(blob.toBytesRef().bytes, start, length); } else if (Regex.simpleMatch("DELETE /container/*", request)) { - Streams.readFully(exchange.getRequestBody()); + drainInputStream(exchange.getRequestBody()); blobs.entrySet().removeIf(blob -> blob.getKey().startsWith(exchange.getRequestURI().getPath())); exchange.sendResponseHeaders(RestStatus.ACCEPTED.getStatus(), -1); @@ -251,7 +251,7 @@ private static class AzureErroneousHttpHandler extends ErroneousHttpHandler { @Override protected void handleAsError(final HttpExchange exchange) throws IOException { - Streams.readFully(exchange.getRequestBody()); + drainInputStream(exchange.getRequestBody()); TestUtils.sendError(exchange, randomFrom(RestStatus.INTERNAL_SERVER_ERROR, RestStatus.SERVICE_UNAVAILABLE)); exchange.close(); } diff --git a/plugins/repository-s3/src/test/java/org/elasticsearch/repositories/s3/S3BlobStoreRepositoryTests.java b/plugins/repository-s3/src/test/java/org/elasticsearch/repositories/s3/S3BlobStoreRepositoryTests.java index 5762e34a19c61..69b9c453480b0 100644 --- a/plugins/repository-s3/src/test/java/org/elasticsearch/repositories/s3/S3BlobStoreRepositoryTests.java +++ b/plugins/repository-s3/src/test/java/org/elasticsearch/repositories/s3/S3BlobStoreRepositoryTests.java @@ -194,7 +194,7 @@ public void handle(final HttpExchange exchange) throws IOException { } } else if (Regex.simpleMatch("POST /bucket/*?uploadId=*", request)) { - Streams.readFully(exchange.getRequestBody()); + drainInputStream(exchange.getRequestBody()); final Map params = new HashMap<>(); RestUtils.decodeQueryString(exchange.getRequestURI().getQuery(), 0, params); final String uploadId = params.get("uploadId"); diff --git a/test/framework/src/main/java/org/elasticsearch/repositories/blobstore/ESMockAPIBasedRepositoryIntegTestCase.java b/test/framework/src/main/java/org/elasticsearch/repositories/blobstore/ESMockAPIBasedRepositoryIntegTestCase.java index 4876f64301204..6ce1e45ef2bd2 100644 --- a/test/framework/src/main/java/org/elasticsearch/repositories/blobstore/ESMockAPIBasedRepositoryIntegTestCase.java +++ b/test/framework/src/main/java/org/elasticsearch/repositories/blobstore/ESMockAPIBasedRepositoryIntegTestCase.java @@ -26,7 +26,6 @@ import org.elasticsearch.cluster.metadata.IndexMetaData; import org.elasticsearch.common.Strings; import org.elasticsearch.common.SuppressForbidden; -import org.elasticsearch.common.io.Streams; import org.elasticsearch.common.network.InetAddresses; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.mocksocket.MockHttpServer; @@ -37,6 +36,7 @@ import org.junit.BeforeClass; import java.io.IOException; +import java.io.InputStream; import java.net.InetAddress; import java.net.InetSocketAddress; import java.util.Map; @@ -53,6 +53,8 @@ @SuppressForbidden(reason = "this test uses a HttpServer to emulate a cloud-based storage service") public abstract class ESMockAPIBasedRepositoryIntegTestCase extends ESBlobStoreRepositoryIntegTestCase { + private static final byte[] BUFFER = new byte[1024]; + private static HttpServer httpServer; private Map handlers; @@ -127,6 +129,15 @@ protected static String httpServerUrl() { return "http://" + InetAddresses.toUriString(address.getAddress()) + ":" + address.getPort(); } + /** + * Consumes and closes the given {@link InputStream} + */ + protected static void drainInputStream(final InputStream inputStream) throws IOException { + try (InputStream is = inputStream) { + while (is.read(BUFFER) >= 0); + } + } + /** * HTTP handler that injects random service errors * @@ -166,7 +177,7 @@ public void handle(final HttpExchange exchange) throws IOException { } protected void handleAsError(final HttpExchange exchange) throws IOException { - Streams.readFully(exchange.getRequestBody()); + drainInputStream(exchange.getRequestBody()); exchange.sendResponseHeaders(HttpStatus.SC_INTERNAL_SERVER_ERROR, -1); exchange.close(); }