Merge "Catch exceptions while writing to dropbox" into udc-dev
diff --git a/src/com/android/phone/DiagnosticDataCollector.java b/src/com/android/phone/DiagnosticDataCollector.java
index d7ebe3d..e997270 100644
--- a/src/com/android/phone/DiagnosticDataCollector.java
+++ b/src/com/android/phone/DiagnosticDataCollector.java
@@ -21,8 +21,11 @@
import android.annotation.WorkerThread;
import android.os.DropBoxManager;
import android.os.SystemClock;
+import android.os.TransactionTooLargeException;
+import android.telephony.AnomalyReporter;
import android.telephony.TelephonyManager;
import android.util.Log;
+import java.util.UUID;
import java.io.BufferedReader;
import java.io.IOException;
@@ -59,7 +62,10 @@
private final SimpleDateFormat mDateFormat = new SimpleDateFormat("MM-dd HH:mm:ss.mmm",
Locale.US);
private final boolean mIsLowRamDevice;
-
+ public static final UUID DROPBOX_TRANSACTION_TOO_LARGE_EXCEPTION =
+ UUID.fromString("ab27e97a-ef7b-11ed-a05b-0242ac120003");
+ public static final String DROPBOX_TRANSACTION_TOO_LARGE_MSG =
+ "DiagnosticDataCollector: transaction too large";
public DiagnosticDataCollector(Runtime javaRuntime, Executor asyncTaskExecutor,
DropBoxManager dropBoxManager, boolean isLowRamDevice) {
mJavaRuntime = javaRuntime;
@@ -179,7 +185,16 @@
Log.w(TAG, "Cmd ran with errors");
output.append(ERROR_MSG + System.lineSeparator());
}
- mDropBoxManager.addText(dropboxTag, output.toString());
+ try {
+ mDropBoxManager.addText(dropboxTag, output.toString());
+ } catch (Exception e) {
+ if (e instanceof TransactionTooLargeException) {
+ AnomalyReporter.reportAnomaly(
+ DROPBOX_TRANSACTION_TOO_LARGE_EXCEPTION,
+ DROPBOX_TRANSACTION_TOO_LARGE_MSG);
+ }
+ Log.w(TAG, "Exception while writing to Dropbox " + e);
+ }
}
@WorkerThread