From acd4321872387212bbd956e134faf22eee4bbadc Mon Sep 17 00:00:00 2001 From: Mike Lockwood Date: Thu, 11 Jun 2015 12:56:20 -0700 Subject: MidiDeviceServer: Fix race condition in setting device server's mDeviceInfo This made it unsafe to open ports on a device from the MidiManager onDeviceOpened callback Bug: 21760692 Change-Id: I536acdf574a3ccecdb66a8fde87089538e8bb1ef --- services/midi/java/com/android/server/midi/MidiService.java | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'services/midi') diff --git a/services/midi/java/com/android/server/midi/MidiService.java b/services/midi/java/com/android/server/midi/MidiService.java index d1bbbfc..3ecfd55 100644 --- a/services/midi/java/com/android/server/midi/MidiService.java +++ b/services/midi/java/com/android/server/midi/MidiService.java @@ -741,6 +741,15 @@ public class MidiService extends IMidiManager.Stub { MidiDeviceInfo deviceInfo = new MidiDeviceInfo(type, id, numInputPorts, numOutputPorts, inputPortNames, outputPortNames, properties, isPrivate); + if (server != null) { + try { + server.setDeviceInfo(deviceInfo); + } catch (RemoteException e) { + Log.e(TAG, "RemoteException in setDeviceInfo()"); + return null; + } + } + Device device = null; BluetoothDevice bluetoothDevice = null; if (type == MidiDeviceInfo.TYPE_BLUETOOTH) { -- cgit v1.1