diff options
author | Eino-Ville Talvala <etalvala@google.com> | 2011-10-20 16:36:01 -0700 |
---|---|---|
committer | Eino-Ville Talvala <etalvala@google.com> | 2011-10-20 17:12:04 -0700 |
commit | f52b953c0acb730289c6f5a664ec5624d6ba5d36 (patch) | |
tree | 3afb26bf31646d48a79b09027accaa61ea7a8b41 | |
parent | 0ea5e57c6cc314a5d3a14aa0745c56c2a9101f0f (diff) | |
download | android_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.java | 5 |
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."); |