Check whether db was really opened read/write.

Bug: 6176510
Change-Id: I7aeeb4340e55d554a57bb46c3c27ab37186f7e3a
This commit is contained in:
Jeff Brown
2012-04-19 19:44:43 -07:00
parent 59a422e900
commit 330ec91e02

View File

@@ -120,6 +120,13 @@ static jint nativeOpen(JNIEnv* env, jclass clazz, jstring pathStr, jint openFlag
return 0;
}
// Check that the database is really read/write when that is what we asked for.
if ((sqliteFlags & SQLITE_OPEN_READWRITE) && sqlite3_db_readonly(db, NULL)) {
throw_sqlite3_exception(env, db, "Could not open the database in read/write mode.");
sqlite3_close(db);
return 0;
}
// Set the default busy handler to retry for 1000ms and then return SQLITE_BUSY
err = sqlite3_busy_timeout(db, 1000 /* ms */);
if (err != SQLITE_OK) {