summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/content/SyncManager.java3
-rw-r--r--services/tests/servicestests/src/com/android/server/content/SyncManagerTest.java18
2 files changed, 21 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/content/SyncManager.java b/services/core/java/com/android/server/content/SyncManager.java
index ac7e01ed4d72..1786a51e0f7f 100644
--- a/services/core/java/com/android/server/content/SyncManager.java
+++ b/services/core/java/com/android/server/content/SyncManager.java
@@ -3978,6 +3978,9 @@ public class SyncManager {
* @return true if the provided key is used by the SyncManager in scheduling the sync.
*/
private static boolean isSyncSetting(String key) {
+ if (key == null) {
+ return false;
+ }
if (key.equals(ContentResolver.SYNC_EXTRAS_EXPEDITED)) {
return true;
}
diff --git a/services/tests/servicestests/src/com/android/server/content/SyncManagerTest.java b/services/tests/servicestests/src/com/android/server/content/SyncManagerTest.java
index d093e7961b22..c2a81d9453e4 100644
--- a/services/tests/servicestests/src/com/android/server/content/SyncManagerTest.java
+++ b/services/tests/servicestests/src/com/android/server/content/SyncManagerTest.java
@@ -16,6 +16,7 @@
package com.android.server.content;
+import android.content.ContentResolver;
import android.os.Bundle;
import android.test.suitebuilder.annotation.SmallTest;
@@ -57,6 +58,23 @@ public class SyncManagerTest extends TestCase {
SyncManager.syncExtrasEquals(b1, b2, false /* don't care about system extras */));
}
+ public void testSyncExtrasEqualsFails_WithNull() throws Exception {
+ Bundle b1 = new Bundle();
+ b1.putBoolean(ContentResolver.SYNC_EXTRAS_MANUAL, true);
+ b1.putBoolean(ContentResolver.SYNC_EXTRAS_EXPEDITED, true);
+
+ Bundle b2 = new Bundle();
+ b2.putBoolean(ContentResolver.SYNC_EXTRAS_MANUAL, true);
+ b2.putBoolean(ContentResolver.SYNC_EXTRAS_EXPEDITED, true);
+ b2.putString(null, "Hello NPE!");
+ b2.putString("a", "b");
+ b2.putString("c", "d");
+ b2.putString("e", "f");
+
+ assertFalse("Extras not properly compared between bundles.",
+ SyncManager.syncExtrasEquals(b1, b2, false /* don't care about system extras */));
+ }
+
public void testSyncExtrasEqualsFails_differentValues() throws Exception {
Bundle b1 = new Bundle();
Bundle b2 = new Bundle();