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

Commit 5d3eb229 authored by lijilou's avatar lijilou Committed by Jilou li
Browse files

AppDataHelper:fix ArrayIndexOutOfBoundsException happen in fixAppsDataOnBoot...

AppDataHelper:fix ArrayIndexOutOfBoundsException happen in fixAppsDataOnBoot method due to forget add lock.

   from the code:
    @GuardedBy("mPm.mInstallLock")
    void reconcileAppsDataLI(String volumeUuid, int userId, @StorageManager.StorageFlags int flags,
            boolean migrateAppData) {
        reconcileAppsDataLI(volumeUuid, userId, flags, migrateAppData, false /* onlyCoreApps */);
    }
    we should call the  reconcileAppsDataLI method by mPm.mInstallLock.

Bug: 338600619
Change-Id: I05f8aa84d71d5083c27427e3a9957b456ac57ce4
parent 43420b33
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -534,9 +534,12 @@ public class AppDataHelper {
        } else {
            storageFlags = StorageManager.FLAG_STORAGE_DE | StorageManager.FLAG_STORAGE_CE;
        }
        List<String> deferPackages = reconcileAppsDataLI(StorageManager.UUID_PRIVATE_INTERNAL,
        final List<String> deferPackages;
        synchronized (mPm.mInstallLock) {
           deferPackages = reconcileAppsDataLI(StorageManager.UUID_PRIVATE_INTERNAL,
                    UserHandle.USER_SYSTEM, storageFlags, true /* migrateAppData */,
                    true /* onlyCoreApps */);
        }
        Future<?> prepareAppDataFuture = SystemServerInitThreadPool.submit(() -> {
            TimingsTraceLog traceLog = new TimingsTraceLog("SystemServerTimingAsync",
                    Trace.TRACE_TAG_PACKAGE_MANAGER);