From dac53d9c7db2f948e3d51686e383e65b076ce51d Mon Sep 17 00:00:00 2001
From: satok <satok@google.com>
Date: Thu, 3 Jun 2010 23:56:33 +0900
Subject: [PATCH] Change RuntimeErrot to OutOfMemoryError

Change-Id: Ic237bc7f0631dcb192be7203379bdf4c5d832b28
---
 java/AndroidManifest.xml                                  | 2 +-
 .../com/android/inputmethod/latin/KeyboardSwitcher.java   | 2 +-
 java/src/com/android/inputmethod/latin/LatinIME.java      | 6 +++++-
 .../src/com/android/inputmethod/latin/LatinImeLogger.java | 8 ++++++--
 .../com/android/inputmethod/latin/LatinKeyboardView.java  | 2 +-
 5 files changed, 14 insertions(+), 6 deletions(-)

diff --git a/java/AndroidManifest.xml b/java/AndroidManifest.xml
index 105eb042a8..d1b56c26c9 100755
--- a/java/AndroidManifest.xml
+++ b/java/AndroidManifest.xml
@@ -1,7 +1,7 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
         package="com.google.android.inputmethod.latin"
         android:versionCode="9"
-        android:versionName="0.15">
+        android:versionName="0.16">
 
     <uses-sdk android:minSdkVersion="8"></uses-sdk>
 
diff --git a/java/src/com/android/inputmethod/latin/KeyboardSwitcher.java b/java/src/com/android/inputmethod/latin/KeyboardSwitcher.java
index ef3fb8e1e6..a8be2fd44c 100644
--- a/java/src/com/android/inputmethod/latin/KeyboardSwitcher.java
+++ b/java/src/com/android/inputmethod/latin/KeyboardSwitcher.java
@@ -392,7 +392,7 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha
             try {
                 mInputView = (LatinKeyboardView) mInputMethodService.getLayoutInflater().inflate(
                         LAYOUTS[newLayout], null);
-            } catch (RuntimeException e) {
+            } catch (OutOfMemoryError e) {
                 LatinImeLogger.logOnException(mLayoutId + "," + newLayout, e);
             }
             mInputView.setExtentionLayoutResId(LAYOUTS[newLayout]);
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index 5209745806..6d620968ad 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -291,7 +291,11 @@ public class LatinIME extends InputMethodService
         if (inputLanguage == null) {
             inputLanguage = conf.locale.toString();
         }
-        initSuggest(inputLanguage);
+        try {
+            initSuggest(inputLanguage);
+        } catch (OutOfMemoryError e) {
+            LatinImeLogger.logOnException(inputLanguage, e);
+        }
         mOrientation = conf.orientation;
         initSuggestPuncList();
 
diff --git a/java/src/com/android/inputmethod/latin/LatinImeLogger.java b/java/src/com/android/inputmethod/latin/LatinImeLogger.java
index 83a791c130..5a8b61dbcd 100644
--- a/java/src/com/android/inputmethod/latin/LatinImeLogger.java
+++ b/java/src/com/android/inputmethod/latin/LatinImeLogger.java
@@ -550,7 +550,7 @@ public class LatinImeLogger implements SharedPreferences.OnSharedPreferenceChang
         }
     }
 
-    public static void logOnException(String metaData, RuntimeException e) {
+    public static void logOnException(String metaData, Throwable e) {
         if (sLogEnabled) {
             ByteArrayOutputStream baos = new ByteArrayOutputStream();
             PrintStream ps = new PrintStream(baos);
@@ -566,7 +566,11 @@ public class LatinImeLogger implements SharedPreferences.OnSharedPreferenceChang
                 sLatinImeLogger.commitInternalAndStopSelf();
             } else {
                 sLatinImeLogger.commitInternal();
-                throw e;
+                if (e instanceof RuntimeException) {
+                    throw (RuntimeException) e;
+                } else if (e instanceof Error) {
+                    throw (Error) e;
+                }
             }
         }
     }
diff --git a/java/src/com/android/inputmethod/latin/LatinKeyboardView.java b/java/src/com/android/inputmethod/latin/LatinKeyboardView.java
index 46f04b8a2c..014d773abe 100644
--- a/java/src/com/android/inputmethod/latin/LatinKeyboardView.java
+++ b/java/src/com/android/inputmethod/latin/LatinKeyboardView.java
@@ -474,7 +474,7 @@ public class LatinKeyboardView extends KeyboardView {
     public void draw(Canvas c) {
         try {
             super.draw(c);
-        } catch (RuntimeException e) {
+        } catch (OutOfMemoryError e) {
             LatinImeLogger.logOnException("draw in LatinKeybaordView", e);
         }
         if (DEBUG_AUTO_PLAY) {
-- 
GitLab