diff options
author | Mike Lockwood <lockwood@google.com> | 2015-06-11 12:56:20 -0700 |
---|---|---|
committer | Mike Lockwood <lockwood@google.com> | 2015-06-11 13:28:36 -0700 |
commit | acd4321872387212bbd956e134faf22eee4bbadc (patch) | |
tree | 8c67d0e872d416aeabe534faf13fba2c98bf0ab4 /services/midi | |
parent | 6d5a0f916499a69f28b860fd66d09b5025c30450 (diff) | |
download | frameworks_base-acd4321872387212bbd956e134faf22eee4bbadc.zip frameworks_base-acd4321872387212bbd956e134faf22eee4bbadc.tar.gz frameworks_base-acd4321872387212bbd956e134faf22eee4bbadc.tar.bz2 |
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
Diffstat (limited to 'services/midi')
-rw-r--r-- | services/midi/java/com/android/server/midi/MidiService.java | 9 |
1 files changed, 9 insertions, 0 deletions
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) { |