From 2435a927f30efe38c673bfaed64a9880028da9e8 Mon Sep 17 00:00:00 2001 From: David 'Digit' Turner Date: Thu, 16 Jun 2011 17:40:23 +0200 Subject: [PATCH] NativeDaemonConnector: Fix SDCard mounting bug in the emulator. This patch fixes a really annoying bug that prevented the emulator from properly mounting the SD Card. The issue was that mOutputStream was not initialized when the onDaemonConnected callbacks are called, just after the daemon's socket connection is established. In one specific case (MountService a.k.a. VoldConnector), the corresponding callback function immediately tried to perform a doCommandList() call on the connector object. The request failed because mOutputStream was still defined as null when it happened. By moving the initialization of the variable just before the callback is invoked, we ensure that things work properly. Change-Id: I46726a50ef69eaafe70081ff4eda1244b744beba --- services/java/com/android/server/NativeDaemonConnector.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/services/java/com/android/server/NativeDaemonConnector.java b/services/java/com/android/server/NativeDaemonConnector.java index cf87a9d3937e5..88af1b264dc26 100644 --- a/services/java/com/android/server/NativeDaemonConnector.java +++ b/services/java/com/android/server/NativeDaemonConnector.java @@ -97,10 +97,11 @@ final class NativeDaemonConnector implements Runnable { LocalSocketAddress.Namespace.RESERVED); socket.connect(address); + + mOutputStream = socket.getOutputStream(); mCallbacks.onDaemonConnected(); InputStream inputStream = socket.getInputStream(); - mOutputStream = socket.getOutputStream(); byte[] buffer = new byte[BUFFER_SIZE]; int start = 0;