Merge "Fix issue #8401553: It's possible to startForeground()..." into jb-mr2-dev
diff --git a/services/java/com/android/server/am/ServiceRecord.java b/services/java/com/android/server/am/ServiceRecord.java
index b06c60a..1ac6bdf 100644
--- a/services/java/com/android/server/am/ServiceRecord.java
+++ b/services/java/com/android/server/am/ServiceRecord.java
@@ -368,6 +368,13 @@
                         return;
                     }
                     try {
+                        if (foregroundNoti.icon == 0) {
+                            // Notifications whose icon is 0 are defined to not show
+                            // a notification, silently ignoring it.  We don't want to
+                            // just ignore it, we want to prevent the service from
+                            // being foreground.
+                            throw new RuntimeException("icon must be non-zero");
+                        }
                         int[] outId = new int[1];
                         nm.enqueueNotificationInternal(localPackageName, localPackageName,
                                 appUid, appPid, null, localForegroundId, localForegroundNoti,