Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1b1d614e authored by Abhijeet Kaur's avatar Abhijeet Kaur
Browse files

Add logic to handle screenshot file creation failure

Delete the bugreport file to free the space before returning.

Delete unnecessary if blocks as the File constructor would never return
null

Bug:123617758
Test: Force code to execute the if (screenshotFd == null) block.
      Bugreport file gets deleted successfully

Change-Id: Ib88278a8a56799ef562b8b06e5e530a8e31e85d5
parent 7bdc19ba
Loading
Loading
Loading
Loading
+2 −12
Original line number Diff line number Diff line
@@ -580,9 +580,9 @@ public class BugreportProgressService extends Service {
        ParcelFileDescriptor screenshotFd = createReadWriteFile(BUGREPORT_DIR,
                bugreportName + ".png");
        if (screenshotFd == null) {
            Log.e(TAG, "Screenshot parcel file descriptor is null.");
            // TODO(b/123617758): Delete bugreport file created above
            Log.e(TAG, "Screenshot parcel file descriptor is null. Deleting bugreport file");
            FileUtils.closeQuietly(bugreportFd);
            new File(BUGREPORT_DIR, String.format("%s.zip", bugreportName)).delete();
            return;
        }
        mBugreportManager = (BugreportManager) mContext.getSystemService(
@@ -970,18 +970,8 @@ public class BugreportProgressService extends Service {
    private void onBugreportFinished(int id) {
        BugreportInfo info = getInfo(id);
        final File bugreportFile = new File(BUGREPORT_DIR, info.name + ".zip");
        if (bugreportFile == null) {
            // Should never happen, an id always has a file linked to it.
            Log.wtf(TAG, "Missing file " + bugreportFile.getPath() + " does not exist.");
            return;
        }
        final int max = -1; // this is to log metrics for dumpstate duration.
        File screenshotFile = new File(BUGREPORT_DIR, info.name + ".png");
        if (screenshotFile == null) {
            // Should never happen, an id always has a file linked to it.
            Log.wtf(TAG, "Missing file " + screenshotFile.getPath() + " does not exist.");
            return;
        }
        // If the screenshot file did not get populated implies this type of bugreport does not
        // need the screenshot file; setting the file to null so that empty file doesnt get shared
        if (screenshotFile.length() == 0) {