summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/Shell/src/com/android/shell/BugreportProgressService.java9
-rw-r--r--packages/Shell/tests/src/com/android/shell/BugreportReceiverTest.java15
2 files changed, 19 insertions, 5 deletions
diff --git a/packages/Shell/src/com/android/shell/BugreportProgressService.java b/packages/Shell/src/com/android/shell/BugreportProgressService.java
index f7b1c5bf9c5b..2b71892ee8a5 100644
--- a/packages/Shell/src/com/android/shell/BugreportProgressService.java
+++ b/packages/Shell/src/com/android/shell/BugreportProgressService.java
@@ -380,6 +380,11 @@ public class BugreportProgressService extends Service {
public void onFinished() {
mInfo.renameBugreportFile();
mInfo.renameScreenshots();
+ if (mInfo.bugreportFile.length() == 0) {
+ Log.e(TAG, "Bugreport file empty. File path = " + mInfo.bugreportFile);
+ onError(BUGREPORT_ERROR_RUNTIME);
+ return;
+ }
synchronized (mLock) {
sendBugreportFinishedBroadcastLocked();
mMainThreadHandler.post(() -> mInfoDialog.onBugreportFinished(mInfo));
@@ -408,10 +413,6 @@ public class BugreportProgressService extends Service {
@GuardedBy("mLock")
private void sendBugreportFinishedBroadcastLocked() {
final String bugreportFilePath = mInfo.bugreportFile.getAbsolutePath();
- if (mInfo.bugreportFile.length() == 0) {
- Log.e(TAG, "Bugreport file empty. File path = " + bugreportFilePath);
- return;
- }
if (mInfo.type == BugreportParams.BUGREPORT_MODE_REMOTE) {
sendRemoteBugreportFinishedBroadcast(mContext, bugreportFilePath,
mInfo.bugreportFile);
diff --git a/packages/Shell/tests/src/com/android/shell/BugreportReceiverTest.java b/packages/Shell/tests/src/com/android/shell/BugreportReceiverTest.java
index 43147cdfc86d..89cdeaea199c 100644
--- a/packages/Shell/tests/src/com/android/shell/BugreportReceiverTest.java
+++ b/packages/Shell/tests/src/com/android/shell/BugreportReceiverTest.java
@@ -513,6 +513,17 @@ public class BugreportReceiverTest {
}
@Test
+ public void testBugreportFinished_withEmptyBugreportFile() throws Exception {
+ sendBugreportStarted();
+
+ IoUtils.closeQuietly(mBugreportFd);
+ mBugreportFd = null;
+ sendBugreportFinished();
+
+ assertServiceNotRunning();
+ }
+
+ @Test
public void testShareBugreportAfterServiceDies() throws Exception {
sendBugreportStarted();
waitForScreenshotButtonEnabled(true);
@@ -647,7 +658,9 @@ public class BugreportReceiverTest {
* Callbacks to service to finish the bugreport.
*/
private void sendBugreportFinished() throws Exception {
- writeZipFile(mBugreportFd, BUGREPORT_FILE, BUGREPORT_CONTENT);
+ if (mBugreportFd != null) {
+ writeZipFile(mBugreportFd, BUGREPORT_FILE, BUGREPORT_CONTENT);
+ }
if (mScreenshotFd != null) {
writeScreenshotFile(mScreenshotFd, SCREENSHOT_CONTENT);
}