summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorIrfan Sheriff <isheriff@google.com>2011-01-16 14:31:55 -0800
committerIrfan Sheriff <isheriff@google.com>2011-01-16 14:31:55 -0800
commit1cd94ef9570a1534e32b27d5b174dc690c9be6b9 (patch)
tree63b297f5fef33ff5627fb717a5fa1da5e4c5725e /services
parentb73203ab7e308b747819de2b2400afe971ef3bff (diff)
downloadframeworks_base-1cd94ef9570a1534e32b27d5b174dc690c9be6b9.zip
frameworks_base-1cd94ef9570a1534e32b27d5b174dc690c9be6b9.tar.gz
frameworks_base-1cd94ef9570a1534e32b27d5b174dc690c9be6b9.tar.bz2
Do not add unsolicited events to queue
Adding unsolicited events to response queue results in doCommand() returning the wrong result. Pulling this change from master. Bug: 3258529 Change-Id: I2a4b0bd8bb30b31682d7d61ee94a0d246bf10de2
Diffstat (limited to 'services')
-rw-r--r--services/java/com/android/server/NativeDaemonConnector.java12
1 files changed, 7 insertions, 5 deletions
diff --git a/services/java/com/android/server/NativeDaemonConnector.java b/services/java/com/android/server/NativeDaemonConnector.java
index 7b68d68..cf87a9d 100644
--- a/services/java/com/android/server/NativeDaemonConnector.java
+++ b/services/java/com/android/server/NativeDaemonConnector.java
@@ -132,11 +132,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));
@@ -219,6 +220,7 @@ final class NativeDaemonConnector implements Runnable {
*/
public synchronized ArrayList<String> doCommand(String cmd)
throws NativeDaemonConnectorException {
+ mResponseQueue.clear();
sendCommand(cmd);
ArrayList<String> response = new ArrayList<String>();