summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEino-Ville Talvala <etalvala@google.com>2011-10-20 16:36:01 -0700
committerEino-Ville Talvala <etalvala@google.com>2011-10-20 17:12:04 -0700
commitf52b953c0acb730289c6f5a664ec5624d6ba5d36 (patch)
tree3afb26bf31646d48a79b09027accaa61ea7a8b41
parent0ea5e57c6cc314a5d3a14aa0745c56c2a9101f0f (diff)
downloadandroid_system_media-f52b953c0acb730289c6f5a664ec5624d6ba5d36.tar.gz
android_system_media-f52b953c0acb730289c6f5a664ec5624d6ba5d36.tar.bz2
android_system_media-f52b953c0acb730289c6f5a664ec5624d6ba5d36.zip
Fix NPE in AsyncRunner when runner is stopped immediately after start.
If the AsyncTask is cancelled immediately after being started, the background worker function may never be called, and variables it initializes may not be set. As used in Camera, this could lead to a crash if the right sequence of start/stop actions is taken. Bug: 5493458 Change-Id: Idee9c3de1cf1dc999acc57c6aefcae4797582bdb
-rw-r--r--mca/filterfw/java/android/filterfw/core/AsyncRunner.java5
1 files changed, 5 insertions, 0 deletions
diff --git a/mca/filterfw/java/android/filterfw/core/AsyncRunner.java b/mca/filterfw/java/android/filterfw/core/AsyncRunner.java
index fc16444c..70cbad4c 100644
--- a/mca/filterfw/java/android/filterfw/core/AsyncRunner.java
+++ b/mca/filterfw/java/android/filterfw/core/AsyncRunner.java
@@ -113,6 +113,11 @@ public class AsyncRunner extends GraphRunner{
protected void onPostExecute(RunnerResult result) {
if (mLogVerbose) Log.v(TAG, "Starting post-execute.");
setRunning(false);
+ if (result == null) {
+ // Cancelled before got to doInBackground
+ result = new RunnerResult();
+ result.status = RESULT_STOPPED;
+ }
setException(result.exception);
if (result.status == RESULT_STOPPED || result.status == RESULT_ERROR) {
if (mLogVerbose) Log.v(TAG, "Closing filters.");