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

Commit b1c9cc74 authored by Arun Goyal's avatar Arun Goyal
Browse files

Device stuck in boot due to ArrayIndexOutOfBoundsException

Problem: {

//frameworks/base/services/core/java/com/android/server/pm/Installer.java
final CreateAppDataResult[] results =
installer.createAppDataBatched(args);  // createAppDataBatched() return
empty

E AndroidRuntime: *** FATAL EXCEPTION IN SYSTEM PROCESS: PackageManager
E AndroidRuntime: java.lang.ArrayIndexOutOfBoundsException: length=0;
index=0
E AndroidRuntime:        at
com.android.server.pm.Installer$Batch.execute(Installer.java:419)
E AndroidRuntime:        at
com.android.server.pm.AppDataHelper.executeBatchLI(AppDataHelper.java:167)
E AndroidRuntime:        at
com.android.server.pm.AppDataHelper.prepareAppDataPostCommitLIF(AppDataHelper.java:162)

Bug : https://partnerissuetracker.corp.google.com/issues/284269814


}

Solution: {
   Handling ArrayIndexOutOfBoundsException by changing size of loop from
   args.length  to  results.length
   }

   Bug: 284269814

Change-Id: I88678483ec2a6c6dbc46d12375affd62da64d140
Signed-off-by: default avatarArun Goyal <arungoyalag@gmail.com>
parent f6d43717
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -390,7 +390,7 @@ public class Installer extends SystemService {
                    args[j] = mArgs.get(i + j);
                }
                final CreateAppDataResult[] results = installer.createAppDataBatched(args);
                for (int j = 0; j < args.length; j++) {
                for (int j = 0; j < results.length; j++) {
                    final CreateAppDataResult result = results[j];
                    final CompletableFuture<Long> future = mFutures.get(i + j);
                    if (result.exceptionCode == 0) {