zeyomir/OpenCachingFun

App crashes when back button is used during downloading

Opened this issue · 2 comments

stacktrace:

11-20 20:32:36.665: E/AndroidRuntime(13442): FATAL EXCEPTION: AsyncTask #2
11-20 20:32:36.665: E/AndroidRuntime(13442): java.lang.RuntimeException: An error occured while executing doInBackground()
11-20 20:32:36.665: E/AndroidRuntime(13442): at android.os.AsyncTask$3.done(AsyncTask.java:299)
11-20 20:32:36.665: E/AndroidRuntime(13442): at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352)
11-20 20:32:36.665: E/AndroidRuntime(13442): at java.util.concurrent.FutureTask.setException(FutureTask.java:219)
11-20 20:32:36.665: E/AndroidRuntime(13442): at java.util.concurrent.FutureTask.run(FutureTask.java:239)
11-20 20:32:36.665: E/AndroidRuntime(13442): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
11-20 20:32:36.665: E/AndroidRuntime(13442): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
11-20 20:32:36.665: E/AndroidRuntime(13442): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
11-20 20:32:36.665: E/AndroidRuntime(13442): at java.lang.Thread.run(Thread.java:841)
11-20 20:32:36.665: E/AndroidRuntime(13442): Caused by: java.lang.NullPointerException
11-20 20:32:36.665: E/AndroidRuntime(13442): at com.zeyomir.ocfun.dao.DbAdapter.close(DbAdapter.java:67)
11-20 20:32:36.665: E/AndroidRuntime(13442): at com.zeyomir.ocfun.dao.CacheDAO.save(CacheDAO.java:30)
11-20 20:32:36.665: E/AndroidRuntime(13442): at com.zeyomir.ocfun.controller.AddCaches$DownloadCaches.doInBackground(AddCaches.java:236)
11-20 20:32:36.665: E/AndroidRuntime(13442): at com.zeyomir.ocfun.controller.AddCaches$DownloadCaches.doInBackground(AddCaches.java:186)
11-20 20:32:36.665: E/AndroidRuntime(13442): at android.os.AsyncTask$2.call(AsyncTask.java:287)
11-20 20:32:36.665: E/AndroidRuntime(13442): at java.util.concurrent.FutureTask.run(FutureTask.java:234)
11-20 20:32:36.665: E/AndroidRuntime(13442): ... 4 more

I couldn't reproduce it.

This above commit solves only half of the issue as we still don't know WHY this issue occurs. Need to find a way to gracefully close db in that situation.

the problem is bigger than that, it is caused by closing db on hitting the back button, but cache downloader still has a reference to that db.