OSDN Git Service

Fix race condition in NsdManagerTest
authorHugo Benichi <hugobenichi@google.com>
Wed, 31 May 2017 06:31:59 +0000 (15:31 +0900)
committerHugo Benichi <hugobenichi@google.com>
Wed, 31 May 2017 06:35:54 +0000 (15:35 +0900)
NsdManagerTest relies on the lastMessage variable to assert the
connection of a client to the service. The asserts in test are done on a
different thread, although the variable was not qualified volatile,
which creates the chance to read a stale value. This patch fixes this
race by marking the variable volatile.

Bug: 32561414
Bug: 62044295
Test: NsdManagerTest works
Change-Id: I0bc2cd8059c6ff8b78a2dda0ba8d6bc7e13ef951

tests/net/java/android/net/nsd/NsdManagerTest.java

index 063cd5d..adf6998 100644 (file)
@@ -333,7 +333,7 @@ public class NsdManagerTest {
     public static class MockServiceHandler extends Handler {
         public Context mContext;
         public AsyncChannel chan;
-        public Message lastMessage;
+        public volatile Message lastMessage;
 
         MockServiceHandler(Looper looper, Context context) {
             super(looper);