summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Narayan Kamath <narayan@google.com> 2017-12-21 09:43:38 +0000
committer Narayan Kamath <narayan@google.com> 2017-12-21 10:24:52 +0000
commit6192f7322d973f8cf284a9b1091e5c45fcfe0aa7 (patch)
tree373db5fdfc742f6b6b28ea3b80ec124921b162e8
parent24721ea0f744e0271f005d057e7972a965544485 (diff)
WorkSource: Fix NPE on set(int) / set(int, String).
mChains might be null. Bug: 62390666 Test: WorkSourceTest Test: run cts-dev -m CtsOsTestCases -t android.os.cts.WorkSourceTest Change-Id: I1dbc2abc576c280ad41ad6214745b0d34c5727a0
-rw-r--r--core/java/android/os/WorkSource.java8
-rw-r--r--core/tests/coretests/src/android/os/WorkSourceTest.java13
2 files changed, 19 insertions, 2 deletions
diff --git a/core/java/android/os/WorkSource.java b/core/java/android/os/WorkSource.java
index 8632aad87dac..bf145a08e06c 100644
--- a/core/java/android/os/WorkSource.java
+++ b/core/java/android/os/WorkSource.java
@@ -266,7 +266,9 @@ public class WorkSource implements Parcelable {
if (mUids == null) mUids = new int[2];
mUids[0] = uid;
mNames = null;
- mChains.clear();
+ if (mChains != null) {
+ mChains.clear();
+ }
}
/** @hide */
@@ -281,7 +283,9 @@ public class WorkSource implements Parcelable {
}
mUids[0] = uid;
mNames[0] = name;
- mChains.clear();
+ if (mChains != null) {
+ mChains.clear();
+ }
}
/**
diff --git a/core/tests/coretests/src/android/os/WorkSourceTest.java b/core/tests/coretests/src/android/os/WorkSourceTest.java
index 7350db7a0811..704b780b0e57 100644
--- a/core/tests/coretests/src/android/os/WorkSourceTest.java
+++ b/core/tests/coretests/src/android/os/WorkSourceTest.java
@@ -205,4 +205,17 @@ public class WorkSourceTest extends TestCase {
ws.add(ws2);
assertEquals(2, workChains.size());
}
+
+ public void testSet_noWorkChains() {
+ WorkSource ws = new WorkSource();
+ ws.set(10);
+ assertEquals(1, ws.size());
+ assertEquals(10, ws.get(0));
+
+ WorkSource ws2 = new WorkSource();
+ ws2.set(20, "foo");
+ assertEquals(1, ws2.size());
+ assertEquals(20, ws2.get(0));
+ assertEquals("foo", ws2.getName(0));
+ }
}