summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMakoto Onuki <omakoto@google.com>2015-06-12 17:14:57 -0700
committerMakoto Onuki <omakoto@google.com>2015-06-12 17:16:23 -0700
commit34bdcdb10525336fe3e386f9dd10e8f3d9da416b (patch)
treea5ac5ae8e1b610d51168d52628ff54e0f9e22085
parent3e634d93587d06d1dddfbe0b409891b39b92daa6 (diff)
downloadframeworks_base-34bdcdb10525336fe3e386f9dd10e8f3d9da416b.zip
frameworks_base-34bdcdb10525336fe3e386f9dd10e8f3d9da416b.tar.gz
frameworks_base-34bdcdb10525336fe3e386f9dd10e8f3d9da416b.tar.bz2
Fix ArrayIndexOutOfBoundsException in Transport.query
The bug was that it used getCount() instead of getColumnCount(). Bug 21727804 Change-Id: I3ed6ed3be60c2cb25316340f588f993bac70f52b
-rw-r--r--core/java/android/content/ContentProvider.java10
1 files changed, 3 insertions, 7 deletions
diff --git a/core/java/android/content/ContentProvider.java b/core/java/android/content/ContentProvider.java
index 72e701d..e916b9f 100644
--- a/core/java/android/content/ContentProvider.java
+++ b/core/java/android/content/ContentProvider.java
@@ -222,16 +222,12 @@ public abstract class ContentProvider implements ComponentCallbacks2 {
Cursor cursor = ContentProvider.this.query(uri, projection, selection,
selectionArgs, sortOrder, CancellationSignal.fromTransport(
cancellationSignal));
-
- // Create a projection for all columns.
- final int columnCount = cursor.getCount();
- String[] allColumns = new String[columnCount];
- for (int i = 0; i < columnCount; i++) {
- allColumns[i] = cursor.getColumnName(i);
+ if (cursor == null) {
+ return null;
}
// Return an empty cursor for all columns.
- return new MatrixCursor(allColumns, 0);
+ return new MatrixCursor(cursor.getColumnNames(), 0);
}
final String original = setCallingPackage(callingPkg);
try {