From 3045bbaf58574ad3168466b198b835b29d174c18 Mon Sep 17 00:00:00 2001 From: Vasu Nori Date: Mon, 10 Jan 2011 14:29:04 -0800 Subject: [PATCH] bug:3330569 print better message to help debug the problem methods such as SQLiteStatement.simpleQueryForString() expect one and only row to be returned when the query is executed. if the application provides a query that doesn't return any data, then the error message printed is pretty confusing. make it less confusing and print the query itself to help debug the error. Change-Id: Ife2066f3a3eab0b98845a49e8f72b518458a7757 --- .../android/database/sqlite/SQLiteStatement.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/core/java/android/database/sqlite/SQLiteStatement.java b/core/java/android/database/sqlite/SQLiteStatement.java index 5e96928515e6c..c76cc6c6e832c 100644 --- a/core/java/android/database/sqlite/SQLiteStatement.java +++ b/core/java/android/database/sqlite/SQLiteStatement.java @@ -131,6 +131,10 @@ public class SQLiteStatement extends SQLiteProgram long retValue = native_1x1_long(); mDatabase.logTimeStat(mSql, timeStart); return retValue; + } catch (SQLiteDoneException e) { + throw new SQLiteDoneException( + "expected 1 row from this query but query returned no data. check the query: " + + mSql); } finally { releaseAndUnlock(); } @@ -150,6 +154,10 @@ public class SQLiteStatement extends SQLiteProgram String retValue = native_1x1_string(); mDatabase.logTimeStat(mSql, timeStart); return retValue; + } catch (SQLiteDoneException e) { + throw new SQLiteDoneException( + "expected 1 row from this query but query returned no data. check the query: " + + mSql); } finally { releaseAndUnlock(); } @@ -172,6 +180,10 @@ public class SQLiteStatement extends SQLiteProgram } catch (IOException ex) { Log.e(TAG, "simpleQueryForBlobFileDescriptor() failed", ex); return null; + } catch (SQLiteDoneException e) { + throw new SQLiteDoneException( + "expected 1 row from this query but query returned no data. check the query: " + + mSql); } finally { releaseAndUnlock(); }