Fix multidevice contact sync update job reporting wrong content length.

This commit is contained in:
Clark
2023-04-14 09:14:35 -04:00
committed by Cody Henthorne
parent 09cf8074aa
commit e7f8d36199
6 changed files with 106 additions and 97 deletions

View File

@@ -29,13 +29,14 @@ import org.signal.core.util.Stopwatch;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Optional;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Future;
import java.util.regex.Pattern;
import java.util.zip.GZIPOutputStream;
import java.util.zip.ZipEntry;
@@ -179,11 +180,11 @@ public class SubmitDebugLogRepository {
try {
Stopwatch stopwatch = new Stopwatch("log-upload");
ParcelFileDescriptor[] fds = ParcelFileDescriptor.createPipe();
Uri gzipUri = BlobProvider.getInstance()
.forData(new ParcelFileDescriptor.AutoCloseInputStream(fds[0]), 0)
.withMimeType("application/gzip")
.createForSingleSessionOnDiskAsync(context, null, null);
ParcelFileDescriptor[] fds = ParcelFileDescriptor.createPipe();
Future<Uri> futureUri = BlobProvider.getInstance()
.forData(new ParcelFileDescriptor.AutoCloseInputStream(fds[0]), 0)
.withMimeType("application/gzip")
.createForSingleSessionOnDiskAsync(context);
OutputStream gzipOutput = new GZIPOutputStream(new ParcelFileDescriptor.AutoCloseOutputStream(fds[1]));
@@ -202,6 +203,7 @@ public class SubmitDebugLogRepository {
}
StreamUtil.close(gzipOutput);
Uri gzipUri = futureUri.get();
stopwatch.split("body");
@@ -228,7 +230,7 @@ public class SubmitDebugLogRepository {
BlobProvider.getInstance().delete(context, gzipUri);
return Optional.of(logUrl);
} catch (IOException e) {
} catch (IOException | RuntimeException | ExecutionException | InterruptedException e) {
Log.w(TAG, "Error during log upload.", e);
return Optional.empty();
}