From e576a0d53705086eebc765131c02d318ab7a86cb Mon Sep 17 00:00:00 2001
From: Jean Chalard <jchalard@google.com>
Date: Tue, 26 Jul 2011 19:24:58 +0900
Subject: [PATCH] Fix a NPE when sent buggy data by an application

Bug: 5072247
Change-Id: I7369877072f6bb94dff5b1bcf52c9f8dde4854b7
---
 .../android/inputmethod/latin/SuggestedWords.java   | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/java/src/com/android/inputmethod/latin/SuggestedWords.java b/java/src/com/android/inputmethod/latin/SuggestedWords.java
index 84db175047..b77cbd199f 100644
--- a/java/src/com/android/inputmethod/latin/SuggestedWords.java
+++ b/java/src/com/android/inputmethod/latin/SuggestedWords.java
@@ -16,6 +16,7 @@
 
 package com.android.inputmethod.latin;
 
+import android.text.TextUtils;
 import android.view.inputmethod.CompletionInfo;
 
 import java.util.ArrayList;
@@ -105,14 +106,18 @@ public class SuggestedWords {
         }
 
         private Builder addWord(CharSequence word, SuggestedWordInfo suggestedWordInfo) {
-            mWords.add(word);
-            mSuggestedWordInfoList.add(suggestedWordInfo);
+            if (!TextUtils.isEmpty(word)) {
+                mWords.add(word);
+                // It's okay if suggestedWordInfo is null since it's checked where it's used.
+                mSuggestedWordInfoList.add(suggestedWordInfo);
+            }
             return this;
         }
 
         public Builder setApplicationSpecifiedCompletions(CompletionInfo[] infos) {
-            for (CompletionInfo info : infos)
-                addWord(info.getText());
+            for (CompletionInfo info : infos) {
+                if (null != info) addWord(info.getText());
+            }
             return this;
         }
 
-- 
GitLab