diff options
author | Mattias Petersson <mattias.petersson@sonyericsson.com> | 2010-11-05 08:25:38 +0100 |
---|---|---|
committer | Johan Redestig <johan.redestig@sonyericsson.com> | 2010-11-05 08:27:14 +0100 |
commit | 19f22745aa0fa2344850bac3234460add9d94c4e (patch) | |
tree | 3aac17405a8de21d0dd34efda3cfbad77e1e9d84 /core/java/android/os/Binder.java | |
parent | 5580e44c250944f5cd011b2682eea5cc2de9706c (diff) | |
download | frameworks_base-19f22745aa0fa2344850bac3234460add9d94c4e.zip frameworks_base-19f22745aa0fa2344850bac3234460add9d94c4e.tar.gz frameworks_base-19f22745aa0fa2344850bac3234460add9d94c4e.tar.bz2 |
Prevent system crash when OOM in Binder thread.
When handling large images during an update of a widget,
we can run out of memory in the Binder thread. This will
cause an OutOfMemoryError to be thrown. When an Error is
thrown in the Binder thread, the entire system will crash.
This was fixed by catching this OutOfMemoryError and instead
throw a RuntimeException to keep the system alive.
Change-Id: If27199676c6f8aef23fb249be1197ca5dfe0fe99
Diffstat (limited to 'core/java/android/os/Binder.java')
-rw-r--r-- | core/java/android/os/Binder.java | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/core/java/android/os/Binder.java b/core/java/android/os/Binder.java index c9df567..1db8f68 100644 --- a/core/java/android/os/Binder.java +++ b/core/java/android/os/Binder.java @@ -292,6 +292,10 @@ public class Binder implements IBinder { } catch (RuntimeException e) { reply.writeException(e); res = true; + } catch (OutOfMemoryError e) { + RuntimeException re = new RuntimeException("Out of memory", e); + reply.writeException(re); + res = true; } reply.recycle(); data.recycle(); |