summaryrefslogtreecommitdiffstats
path: root/services/java/com/android/server
diff options
context:
space:
mode:
authornadlabak <pavel@doshaska.net>2010-11-18 15:31:45 -0800
committernadlabak <pavel@doshaska.net>2010-11-18 15:31:45 -0800
commitadb69034bc4244b61b9cd4a6a3a32f8f90aad1d5 (patch)
tree12075297893462d52f109fac5fb004ec76dd244e /services/java/com/android/server
parent1f63c7ec17aa0bdfb1ece696d9b757d4f007ae3a (diff)
downloadframeworks_base-adb69034bc4244b61b9cd4a6a3a32f8f90aad1d5.zip
frameworks_base-adb69034bc4244b61b9cd4a6a3a32f8f90aad1d5.tar.gz
frameworks_base-adb69034bc4244b61b9cd4a6a3a32f8f90aad1d5.tar.bz2
Unsolicited informational event should not be put in the response queue. It can break e.g. the reading of the asec list returned from vold - package manager then assumes no secure containers on sdcard, which can result in system_server being killed by vold during sdcard unmount, in case it keeps a recently run pkg.apk file in an asec opened.
Change-Id: I068d8ef8cd244fde03f08b1f6b3f920eb9135aaf
Diffstat (limited to 'services/java/com/android/server')
-rw-r--r--services/java/com/android/server/NativeDaemonConnector.java11
1 files changed, 6 insertions, 5 deletions
diff --git a/services/java/com/android/server/NativeDaemonConnector.java b/services/java/com/android/server/NativeDaemonConnector.java
index e269df5..7f0c4f2 100644
--- a/services/java/com/android/server/NativeDaemonConnector.java
+++ b/services/java/com/android/server/NativeDaemonConnector.java
@@ -129,11 +129,12 @@ final class NativeDaemonConnector implements Runnable {
Slog.e(TAG, String.format(
"Error handling '%s'", event), ex);
}
- }
- try {
- mResponseQueue.put(event);
- } catch (InterruptedException ex) {
- Slog.e(TAG, "Failed to put response onto queue", ex);
+ } else {
+ try {
+ mResponseQueue.put(event);
+ } catch (InterruptedException ex) {
+ Slog.e(TAG, "Failed to put response onto queue", ex);
+ }
}
} catch (NumberFormatException nfe) {
Slog.w(TAG, String.format("Bad msg (%s)", event));