Merge "Add additional wait for writing file in testAddManyWords()."
diff --git a/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java b/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java
index c11a220..22b9170 100644
--- a/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java
+++ b/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java
@@ -647,7 +647,7 @@
     @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 f87f3b4..8755e57 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 @@
 @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 @@
         } 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);
         }