summaryrefslogtreecommitdiffstats
path: root/services/midi
diff options
context:
space:
mode:
authorMike Lockwood <lockwood@google.com>2015-06-11 12:56:20 -0700
committerMike Lockwood <lockwood@google.com>2015-06-11 13:28:36 -0700
commitacd4321872387212bbd956e134faf22eee4bbadc (patch)
tree8c67d0e872d416aeabe534faf13fba2c98bf0ab4 /services/midi
parent6d5a0f916499a69f28b860fd66d09b5025c30450 (diff)
downloadframeworks_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.java9
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) {