diff options
author | Irfan Sheriff <isheriff@google.com> | 2011-01-16 14:31:55 -0800 |
---|---|---|
committer | Irfan Sheriff <isheriff@google.com> | 2011-01-16 14:31:55 -0800 |
commit | 1cd94ef9570a1534e32b27d5b174dc690c9be6b9 (patch) | |
tree | 63b297f5fef33ff5627fb717a5fa1da5e4c5725e /services | |
parent | b73203ab7e308b747819de2b2400afe971ef3bff (diff) | |
download | frameworks_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.java | 12 |
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>(); |