attempt to re-open an already-closed object at playMediaReplace

Issue #21 resolved
masafumi terazono repo owner created an issue

----- 2012/11/05 22:39:15 (UTC) [1/11]

[Comment]: total error.

by play = total out [StackTrace]: java.lang.RuntimeException: An error occured while executing doInBackground() at android.os.AsyncTask$3.done(AsyncTask.java:200) at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273) at java.util.concurrent.FutureTask.setException(FutureTask.java:124) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307) at java.util.concurrent.FutureTask.run(FutureTask.java:137) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561) at java.lang.Thread.run(Thread.java:1096) Caused by: java.lang.IllegalStateException: attempt to re-open an already-closed object: android.database.sqlite.SQLiteQuery (mSql = SELECT _id, title, title_key, album, album_key, artist, artist_key, duration, _data, track, year FROM audio WHERE (is_music = 1) ORDER BY artist,album,title) at android.os.Parcel.readException(Parcel.java:1268) at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:160) at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:114) at android.database.BulkCursorProxy.getWindow(BulkCursorNative.java:217) at android.database.BulkCursorToCursorAdaptor.onMove(BulkCursorToCursorAdaptor.java:109) at android.database.AbstractCursor.moveToPosition(AbstractCursor.java:188) at android.database.AbstractCursor.moveToNext(AbstractCursor.java:256) at android.database.CursorWrapper.moveToNext(CursorWrapper.java:191) at android.database.CursorWrapper.moveToNext(CursorWrapper.java:191) at android.database.CursorWrapper.moveToNext(CursorWrapper.java:191) at jp.co.kayo.android.localplayer.fragment.MediaListViewFragment.playMediaReplace(MediaListViewFragment.java:492) at jp.co.kayo.android.localplayer.fragment.MediaListViewFragment$1.doInBackground(MediaListViewFragment.java:327) at jp.co.kayo.android.localplayer.fragment.MediaListViewFragment$1.doInBackground(MediaListViewFragment.java:1) at android.os.AsyncTask$2.call(AsyncTask.java:185) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305) ... 4 more

Comments (1)

  1. masafumi terazono reporter

    AsyncTask内でCursor処理をしていたため発生。アルバムやアーティスト等は対応をしていたので、これは修正もれ。 ただ、処理的に遅い実装になっていたのでサービス側で再クエリをおこなうようにすることでUI側を高速化することにした。同様に古い実装のArtistやGenresも修正した

  2. Log in to comment