summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorKarthikeyan Periasamy <kperiasa@codeaurora.org>2015-07-17 11:41:59 -0700
committerjrizzoli <joey@cyanogenmoditalia.it>2015-08-28 13:15:46 +0200
commitbdc0733968690a268892d09008e382ae07eebb0f (patch)
tree8133ebbef20138f6a79d05ea52a06ade88ea0ae0 /src
parentb2f6cce1a0d73c01136968b22d4c5c88ea44cf63 (diff)
downloadandroid_packages_apps_Gello-bdc0733968690a268892d09008e382ae07eebb0f.tar.gz
android_packages_apps_Gello-bdc0733968690a268892d09008e382ae07eebb0f.tar.bz2
android_packages_apps_Gello-bdc0733968690a268892d09008e382ae07eebb0f.zip
Compress the breadpad crash raw data before uploading to server
Change-Id: I69df249ddd33939694becfdc8c6a48e0d3b6fc89
Diffstat (limited to 'src')
-rw-r--r--src/com/android/browser/CrashLogExceptionHandler.java39
1 files changed, 33 insertions, 6 deletions
diff --git a/src/com/android/browser/CrashLogExceptionHandler.java b/src/com/android/browser/CrashLogExceptionHandler.java
index 367a4099..dc42d596 100644
--- a/src/com/android/browser/CrashLogExceptionHandler.java
+++ b/src/com/android/browser/CrashLogExceptionHandler.java
@@ -50,6 +50,9 @@ import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.entity.InputStreamEntity;
import org.apache.http.impl.client.DefaultHttpClient;
+import org.apache.http.entity.AbstractHttpEntity;
+import org.apache.http.entity.ByteArrayEntity;
+
import org.json.JSONArray;
import org.json.JSONObject;
@@ -62,11 +65,15 @@ import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.BufferedReader;
import java.io.InputStreamReader;
+import java.io.ByteArrayOutputStream;
+import java.io.InputStream;
+import java.io.OutputStream;
import java.lang.Integer;
import java.lang.StringBuilder;
import java.lang.System;
import java.lang.Thread.UncaughtExceptionHandler;
import java.util.Calendar;
+import java.util.zip.GZIPOutputStream;
public class CrashLogExceptionHandler implements Thread.UncaughtExceptionHandler {
@@ -341,12 +348,32 @@ public class CrashLogExceptionHandler implements Thread.UncaughtExceptionHandler
try {
HttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(server);
- InputStreamEntity isEntity = new InputStreamEntity(
- new FileInputStream(report), -1);
- // Send the report as a Binary
- isEntity.setContentType("binary/octet-stream");
- isEntity.setChunked(false);
- httpPost.setEntity(isEntity);
+
+ // Compress the data
+ ByteArrayOutputStream arrayStream = new ByteArrayOutputStream();
+ OutputStream gzipData = new GZIPOutputStream(arrayStream);
+ InputStream inputStream = new FileInputStream(report);
+ long length = report.length();
+ byte[] data = new byte[(int)length];
+
+ // Read in the bytes
+ int offset = 0;
+ int numRead = 0;
+ while (offset < data.length
+ && (numRead=inputStream.read(data, offset, data.length-offset)) >= 0) {
+ offset += numRead;
+ }
+ gzipData.write(data);
+ gzipData.close();
+
+ AbstractHttpEntity entity = new ByteArrayEntity(arrayStream.toByteArray());
+
+ // Send the report as a compressed Binary
+ entity.setContentType("binary/octet-stream");
+ entity.setContentEncoding("gzip");
+ entity.setChunked(false);
+ httpPost.setEntity(entity);
+
HttpResponse response = httpClient.execute(httpPost);
int status = response.getStatusLine().getStatusCode();
if (status == 200)