From 848485bb1c977f803d687a978de3797a74612e57 Mon Sep 17 00:00:00 2001 From: Fyodor Kupolov Date: Fri, 28 Jul 2017 15:46:17 -0700 Subject: [PATCH] List column names in the error message Otherwise it's not clear what is causing the issue (e.g. no columns, case sensitivity issue or a table prefix etc.) Bug: 62431773 Test: manual Change-Id: I81d1f420b70a2248a9b132147cda72c2417dc46b --- core/java/android/database/AbstractCursor.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/core/java/android/database/AbstractCursor.java b/core/java/android/database/AbstractCursor.java index 581fe7fce5ebb..fdb702f01e9d9 100644 --- a/core/java/android/database/AbstractCursor.java +++ b/core/java/android/database/AbstractCursor.java @@ -23,6 +23,7 @@ import android.os.UserHandle; import android.util.Log; import java.lang.ref.WeakReference; +import java.util.Arrays; import java.util.HashMap; import java.util.Map; @@ -330,7 +331,14 @@ public abstract class AbstractCursor implements CrossProcessCursor { public int getColumnIndexOrThrow(String columnName) { final int index = getColumnIndex(columnName); if (index < 0) { - throw new IllegalArgumentException("column '" + columnName + "' does not exist"); + String availableColumns = ""; + try { + availableColumns = Arrays.toString(getColumnNames()); + } catch (Exception e) { + Log.d(TAG, "Cannot collect column names for debug purposes", e); + } + throw new IllegalArgumentException("column '" + columnName + + "' does not exist. Available columns: " + availableColumns); } return index; }