diff options
| author | 2017-01-27 10:15:49 +0100 | |
|---|---|---|
| committer | 2017-03-17 12:14:45 -0700 | |
| commit | c0bba8b18b41356721c2ebb25af83bc5bb5a74b0 (patch) | |
| tree | 52f20a38e4ccd106a446dfb3f471926118e4908f | |
| parent | abac7a6758354cb51f3b9245ed28cb6ea08dc0a2 (diff) | |
Fix ArrayMap.get vs ArrayMap.valueAt typo
Replace incorrect call to ArrayMap.get with correct call
ArrayMap.valueAt.
This bug was discovered when removing an overlay from /vendor/overlay
and restarting the device. The OMS settings file still referred to the
overlay, and when the settings item was to be removed, the following
crash occurred.
*** FATAL EXCEPTION IN SYSTEM PROCESS: main
java.lang.NullPointerException: Attempt to read from field 'java.lang.String android.content.om.OverlayInfo.packageName' on a null object reference
at com.android.server.om.OverlayManagerServiceImpl.onSwitchUser(OverlayManagerServiceImpl.java:121)
at com.android.server.om.OverlayManagerService.onSwitchUser(OverlayManagerService.java:257)
at com.android.server.om.OverlayManagerService.<init>(OverlayManagerService.java:237)
at com.android.server.SystemServer.startBootstrapServices(SystemServer.java:580)
at com.android.server.SystemServer.run(SystemServer.java:363)
at com.android.server.SystemServer.main(SystemServer.java:238)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:226)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:726)
Test: adb exec-out stop && adb exec-out rm /vendor/overlay/... && adb exec-out start
Change-Id: I341a8d6eb90555b9169e5cd7dfac87d850b72e9b
| -rw-r--r-- | services/core/java/com/android/server/om/OverlayManagerServiceImpl.java | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/om/OverlayManagerServiceImpl.java b/services/core/java/com/android/server/om/OverlayManagerServiceImpl.java index 6af1c3b20df2..db133f876d17 100644 --- a/services/core/java/com/android/server/om/OverlayManagerServiceImpl.java +++ b/services/core/java/com/android/server/om/OverlayManagerServiceImpl.java @@ -130,7 +130,7 @@ final class OverlayManagerServiceImpl { // installed and should be removed final int storedOverlayInfosSize = storedOverlayInfos.size(); for (int i = 0; i < storedOverlayInfosSize; i++) { - final OverlayInfo oi = storedOverlayInfos.get(i); + final OverlayInfo oi = storedOverlayInfos.valueAt(i); mSettings.remove(oi.packageName, oi.userId); removeIdmapIfPossible(oi); packagesToUpdateAssets.add(oi.targetPackageName); |