Closing a cursor from task provider, abstract database catch error

pull/14/head
Tim Su 16 years ago
parent cb09991e2d
commit 5aa270a347

@ -9,7 +9,6 @@ import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteException;
import android.database.sqlite.SQLiteOpenHelper;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.util.Log;
@ -112,15 +111,15 @@ abstract public class AbstractDatabase {
try {
database = helper.getWritableDatabase();
} catch (SQLiteException writeException) {
} catch (final RuntimeException original) {
Log.e("database-" + getName(), "Error opening db",
writeException);
original);
try {
// provide read-only database
openForReading();
} catch (SQLiteException readException) {
} catch (Exception readException) {
// throw original write exception
throw writeException;
throw original;
}
}
}

@ -175,9 +175,8 @@ public class Astrid2TaskProvider extends ContentProvider {
TodorooCursor<Task> cursor = taskService.query(Query.select(Task.ID, Task.TITLE,
Task.IMPORTANCE, Task.DUE_DATE).where(TaskCriteria.isActive()).
orderBy(TaskService.defaultTaskOrder()).limit(MAX_NUMBER_OF_TASKS));
try {
int[] importanceColors = Task.getImportanceColors(ctx.getResources());
Task task = new Task();
for (int i = 0; i < cursor.getCount(); i++) {
cursor.moveToNext();
@ -203,6 +202,9 @@ public class Astrid2TaskProvider extends ContentProvider {
ret.addRow(values);
}
} finally {
cursor.close();
}
return ret;
}

Loading…
Cancel
Save