From bc1c40a4846136ab2dfb6d558bb0a43ac6294030 Mon Sep 17 00:00:00 2001 From: Irfan Sheriff Date: Sun, 16 Jan 2011 14:31:55 -0800 Subject: [PATCH] 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 --- .../com/android/server/NativeDaemonConnector.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/services/java/com/android/server/NativeDaemonConnector.java b/services/java/com/android/server/NativeDaemonConnector.java index 7b68d68ddf..cf87a9d393 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 doCommand(String cmd) throws NativeDaemonConnectorException { + mResponseQueue.clear(); sendCommand(cmd); ArrayList response = new ArrayList();