From 2c083c8bda2e90687ce1e92cc020c6e29b9fac5c Mon Sep 17 00:00:00 2001 From: Jing Ji Date: Tue, 19 Jan 2021 12:43:44 -0800 Subject: [PATCH] Finish the GZIPOutputStream after copying the data into it ...while adding compressed entries to the dropbox. Bug: 177907504 Test: atest CtsDropBoxManagerTestCases Test: atest FrameworksServicesTests:com.android.server.DropBoxTest Test: atest CtsAppExitTestCases:ActivityManagerAppExitInfoTest#testAnr Change-Id: I56378593295bce646b4a4103bc6ade5e4d507f32 --- .../core/java/com/android/server/DropBoxManagerService.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/DropBoxManagerService.java b/services/core/java/com/android/server/DropBoxManagerService.java index a6d9bf8bc55bb..f04af8bbf1a0d 100644 --- a/services/core/java/com/android/server/DropBoxManagerService.java +++ b/services/core/java/com/android/server/DropBoxManagerService.java @@ -73,7 +73,6 @@ import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.PrintWriter; -import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.Arrays; import java.util.SortedSet; @@ -446,7 +445,10 @@ public final class DropBoxManagerService extends SystemService { // from an in-memory buffer, or another file on disk; if we buffered // we'd lose out on sendfile() optimizations if (forceCompress) { - FileUtils.copy(in, new GZIPOutputStream(new FileOutputStream(fd))); + final GZIPOutputStream gzipOutputStream = + new GZIPOutputStream(new FileOutputStream(fd)); + FileUtils.copy(in, gzipOutputStream); + gzipOutputStream.finish(); } else { FileUtils.copy(in, new FileOutputStream(fd)); }