diff options
| author | 2017-12-21 09:43:38 +0000 | |
|---|---|---|
| committer | 2017-12-21 10:24:52 +0000 | |
| commit | 6192f7322d973f8cf284a9b1091e5c45fcfe0aa7 (patch) | |
| tree | 373db5fdfc742f6b6b28ea3b80ec124921b162e8 | |
| parent | 24721ea0f744e0271f005d057e7972a965544485 (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.java | 8 | ||||
| -rw-r--r-- | core/tests/coretests/src/android/os/WorkSourceTest.java | 13 |
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)); + } } |