summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author MÃ¥rten Kongstad <marten.kongstad@sonymobile.com> 2017-01-27 10:15:49 +0100
committer Adam Lesinski <adamlesinski@google.com> 2017-03-17 12:14:45 -0700
commitc0bba8b18b41356721c2ebb25af83bc5bb5a74b0 (patch)
tree52f20a38e4ccd106a446dfb3f471926118e4908f
parentabac7a6758354cb51f3b9245ed28cb6ea08dc0a2 (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.java2
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);