From 9f584e15eb614947b718caff840a41232a9c4145 Mon Sep 17 00:00:00 2001
From: Keisuke Kuroyanagi <ksk@google.com>
Date: Tue, 12 Aug 2014 22:29:02 +0900
Subject: [PATCH] Add additional wait for writing file in testAddManyWords().

Change-Id: Ibb79b9821dac3d48e18c684e8aca605254bec045
---
 .../inputmethod/latin/ExpandableBinaryDictionary.java  |  2 +-
 .../personalization/UserHistoryDictionaryTests.java    | 10 ++++++++++
 2 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java b/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java
index c11a220a4f..22b91700c3 100644
--- a/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java
+++ b/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java
@@ -647,7 +647,7 @@ abstract public class ExpandableBinaryDictionary extends Dictionary {
     @UsedForTesting
     public void waitAllTasksForTests() {
         final CountDownLatch countDownLatch = new CountDownLatch(1);
-        ExecutorUtils.getExecutor(mDictName).execute(new Runnable() {
+        asyncExecuteTaskWithWriteLock(new Runnable() {
             @Override
             public void run() {
                 countDownLatch.countDown();
diff --git a/tests/src/com/android/inputmethod/latin/personalization/UserHistoryDictionaryTests.java b/tests/src/com/android/inputmethod/latin/personalization/UserHistoryDictionaryTests.java
index f87f3b494e..8755e573cf 100644
--- a/tests/src/com/android/inputmethod/latin/personalization/UserHistoryDictionaryTests.java
+++ b/tests/src/com/android/inputmethod/latin/personalization/UserHistoryDictionaryTests.java
@@ -41,6 +41,7 @@ import java.util.concurrent.TimeUnit;
 @LargeTest
 public class UserHistoryDictionaryTests extends AndroidTestCase {
     private static final String TAG = UserHistoryDictionaryTests.class.getSimpleName();
+    private static final int WAIT_FOR_WRITING_FILE_IN_MILLISECONDS = 3000;
 
     private static final String[] CHARACTERS = {
         "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m",
@@ -248,6 +249,15 @@ public class UserHistoryDictionaryTests extends AndroidTestCase {
         } finally {
             Log.d(TAG, "waiting for writing ...");
             waitForWriting(dummyLocale);
+            if (!dictFile.exists()) {
+                try {
+                    Log.d(TAG, dictFile +" is not existing. Wait "
+                            + WAIT_FOR_WRITING_FILE_IN_MILLISECONDS + " ms for writing.");
+                    Thread.sleep(WAIT_FOR_WRITING_FILE_IN_MILLISECONDS);
+                } catch (final InterruptedException e) {
+                    Log.e(TAG, "Interrupted during waiting for writing the dict file.");
+                }
+            }
             assertTrue("check exisiting of " + dictFile, dictFile.exists());
             FileUtils.deleteRecursively(dictFile);
         }
-- 
GitLab