garydgregory commented on a change in pull request #186: URL: https://github.com/apache/commons-vfs/pull/186#discussion_r670587749
########## File path: commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/http5/MonitoredHttpResponseContentInputStream.java ########## @@ -38,8 +41,25 @@ public MonitoredHttpResponseContentInputStream(final ClassicHttpResponse httpRes this.httpResponse = httpResponse; } + /** + * Prevent closing the stream itself if the httpResponse is closeable. + * Closing the stream may consume all remaining data no matter how large (VFS-805). + */ + @Override + protected void closeSuper() throws IOException { + // Suppressed close() invocation on the underlying input stream + } + @Override protected void onClose() throws IOException { + // Replace the response's entity with a dummy entity in order to prevent + // exhausting all data (VFS-805) + // Note: HC 5.1 introduces a dedicated NullEntity class Review comment: @Aklakan Our HC 5 code base is now on HC 5.1 ########## File path: commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/http5/MonitoredHttpResponseContentInputStream.java ########## @@ -38,8 +41,25 @@ public MonitoredHttpResponseContentInputStream(final ClassicHttpResponse httpRes this.httpResponse = httpResponse; } + /** + * Prevent closing the stream itself if the httpResponse is closeable. + * Closing the stream may consume all remaining data no matter how large (VFS-805). + */ + @Override + protected void closeSuper() throws IOException { + // Suppressed close() invocation on the underlying input stream + } + @Override protected void onClose() throws IOException { + // Replace the response's entity with a dummy entity in order to prevent + // exhausting all data (VFS-805) + // Note: HC 5.1 introduces a dedicated NullEntity class + HttpEntity nullEntity = new ByteArrayEntity(new byte[0], ContentType.APPLICATION_OCTET_STREAM); + Review comment: No need for extra blank lines. ########## File path: commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/http5/MonitoredHttpResponseContentInputStream.java ########## @@ -38,8 +41,25 @@ public MonitoredHttpResponseContentInputStream(final ClassicHttpResponse httpRes this.httpResponse = httpResponse; } + /** + * Prevent closing the stream itself if the httpResponse is closeable. + * Closing the stream may consume all remaining data no matter how large (VFS-805). + */ + @Override + protected void closeSuper() throws IOException { + // Suppressed close() invocation on the underlying input stream + } + @Override protected void onClose() throws IOException { + // Replace the response's entity with a dummy entity in order to prevent + // exhausting all data (VFS-805) + // Note: HC 5.1 introduces a dedicated NullEntity class + HttpEntity nullEntity = new ByteArrayEntity(new byte[0], ContentType.APPLICATION_OCTET_STREAM); + + httpResponse.setEntity(nullEntity); Review comment: ``` httpResponse.setEntity(NullEntity.INSTANCE); ``` -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: issues-unsubscr...@commons.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org