catch exceptions in Android Database helper (#7027) (#7040)

(cherry picked from commit 7ed2e73a91)

Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
This commit is contained in:
Mattermost Build 2023-01-27 18:58:29 +02:00 committed by GitHub
parent cfb09ce7d7
commit ec2aeca0d0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -20,6 +20,7 @@ class DatabaseHelper {
val onlyServerUrl: String? val onlyServerUrl: String?
get() { get() {
try {
val query = "SELECT url FROM Servers WHERE last_active_at != 0 AND identifier != ''" val query = "SELECT url FROM Servers WHERE last_active_at != 0 AND identifier != ''"
val cursor = defaultDatabase!!.rawQuery(query) val cursor = defaultDatabase!!.rawQuery(query)
if (cursor.count == 1) { if (cursor.count == 1) {
@ -28,6 +29,10 @@ class DatabaseHelper {
cursor.close() cursor.close()
return url return url
} }
} catch (e: Exception) {
e.printStackTrace()
// let it fall to return null
}
return null return null
} }
@ -38,6 +43,7 @@ class DatabaseHelper {
} }
fun getServerUrlForIdentifier(identifier: String): String? { fun getServerUrlForIdentifier(identifier: String): String? {
try {
val args: Array<Any?> = arrayOf(identifier) val args: Array<Any?> = arrayOf(identifier)
val query = "SELECT url FROM Servers WHERE identifier=?" val query = "SELECT url FROM Servers WHERE identifier=?"
val cursor = defaultDatabase!!.rawQuery(query, args) val cursor = defaultDatabase!!.rawQuery(query, args)
@ -47,6 +53,10 @@ class DatabaseHelper {
cursor.close() cursor.close()
return url return url
} }
} catch (e: Exception) {
e.printStackTrace()
// let it fall to return null
}
return null return null
} }
@ -63,11 +73,13 @@ class DatabaseHelper {
return resultMap return resultMap
} }
} catch (e: Exception) { } catch (e: Exception) {
e.printStackTrace()
return null return null
} }
} }
fun getDatabaseForServer(context: Context?, serverUrl: String): Database? { fun getDatabaseForServer(context: Context?, serverUrl: String): Database? {
try {
val args: Array<Any?> = arrayOf(serverUrl) val args: Array<Any?> = arrayOf(serverUrl)
val query = "SELECT db_path FROM Servers WHERE url=?" val query = "SELECT db_path FROM Servers WHERE url=?"
val cursor = defaultDatabase!!.rawQuery(query, args) val cursor = defaultDatabase!!.rawQuery(query, args)
@ -77,6 +89,10 @@ class DatabaseHelper {
cursor.close() cursor.close()
return Database(databasePath, context!!) return Database(databasePath, context!!)
} }
} catch (e: Exception) {
e.printStackTrace()
// let it fall to return null
}
return null return null
} }
@ -148,6 +164,7 @@ class DatabaseHelper {
} }
fun queryPostSinceForChannel(db: Database?, channelId: String): Double? { fun queryPostSinceForChannel(db: Database?, channelId: String): Double? {
try {
if (db != null) { if (db != null) {
val postsInChannelQuery = "SELECT last_fetched_at FROM MyChannel WHERE id=? LIMIT 1" val postsInChannelQuery = "SELECT last_fetched_at FROM MyChannel WHERE id=? LIMIT 1"
val cursor1 = db.rawQuery(postsInChannelQuery, arrayOf(channelId)) val cursor1 = db.rawQuery(postsInChannelQuery, arrayOf(channelId))
@ -161,6 +178,10 @@ class DatabaseHelper {
return lastFetchedAt return lastFetchedAt
} }
} }
} catch (e: Exception) {
e.printStackTrace()
// let it fall to return null
}
return null return null
} }