Fix: Read lock is wrongly used for gutSuggestions.
Bug: 9737865
Change-Id: I017f80b46c5dc48c40f2de7c4d516a042992feb4
diff --git a/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java b/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java
index a563c76..657fc64 100644
--- a/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java
+++ b/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java
@@ -196,7 +196,8 @@
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<SuggestedWordInfo> inMemDictSuggestion =
mDictionaryWriter.getSuggestions(composer, prevWord, proximityInfo,
@@ -217,7 +218,7 @@
return inMemDictSuggestion;
}
} finally {
- mLocalDictionaryController.readLock().unlock();
+ mLocalDictionaryController.writeLock().unlock();
}
}
return null;