diff --git a/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java b/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java index a563c7686..657fc64b4 100644 --- a/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java +++ b/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java @@ -196,7 +196,8 @@ abstract public class ExpandableBinaryDictionary extends Dictionary { final String prevWord, final ProximityInfo proximityInfo, final boolean blockOffensiveWords) { asyncReloadDictionaryIfRequired(); - if (mLocalDictionaryController.readLock().tryLock()) { + // Write lock because getSuggestions in native updates session status. + if (mLocalDictionaryController.writeLock().tryLock()) { try { final ArrayList inMemDictSuggestion = mDictionaryWriter.getSuggestions(composer, prevWord, proximityInfo, @@ -217,7 +218,7 @@ abstract public class ExpandableBinaryDictionary extends Dictionary { return inMemDictSuggestion; } } finally { - mLocalDictionaryController.readLock().unlock(); + mLocalDictionaryController.writeLock().unlock(); } } return null;